Вам необходимо указать внешний ключ в вашей миграции для категорий. Вы делаете это так:
public function up()
{
Schema::create('categories', function (Blueprint $table) {
$table->id();
$table->unsignedInteger('post_id');
$table->foreign('post_id')->references('id')->on('posts');
$table->string('name');
$table->timestamps();
});
}
Не забудьте перенести снова после удаления ваших таблиц.