Ja, es ist Ihr Schema. Die Beschränkung auf likes.post_id wird Sie daran hindern, Datensätze aus den posts zu löschen Tabelle.
Eine Lösung könnte die Verwendung von onDelete('cascade') sein in den likes Migrationsdatei:
Schema::create('likes', function (Blueprint $table) {
$table->integer('post_id')->unsigned();
$table->foreign('post_id')->references('id')->on('posts')->onDelete('cascade');
});
Auf diese Weise werden beim Löschen eines Beitrags auch alle zugehörigen Likes gelöscht.
Oder, wenn Sie eine Beziehung vom Post-Modell zum Like-Modell haben, können Sie $post->likes()->delete() verwenden bevor Sie den Beitrag selbst löschen.