Почему не работает hasMany в laravel?
public function show(int $id)
    {
        $post=Post::find($id);
        $comments=$post->comments()->get();
        dd($comments);
    }

или 
public function show(int $id)
    {
        $post=Post::find($id);
        dd($post->comments);
    }
Внешний ключ в миграции комментов объявите так:
<?php
...
$table->foreignId('post_id')
                ->nullable()
                ->constrained()
                ->cascadeOnUpdate()
                ->nullOnDelete();

В модели комментов сделайте так:
<?php
...
public function post() {
        return $this->belongsTo(Post::class);
    }

А в модели поста так:
<?php
...
public function comments()
{
     return $this->hasMany(Comment::class);
}

Здесь можете посмотреть миграции и модели из рабочего проекта