Karşılaştığım tam baş belası bir sorundan bahsetmek istiyorum .
Yabancı anahtar olarak tanımladığınız alan kesinlikle unsigned olması lazım çünkü diğer tablodaki birincil alan unsigned .
$table->integer('user_id')->unsigned();
&&
$table->unsignedInteger('user_id')->nullable(); // nullable opsiyonel
bu işlemi birincil anahtarda herhangi bir kayıt olmadan yapamazsınız . yani user tablosunda kayıt yaptığınız alandaki user_id ile ilişkili olacak mutlaka bir user kaydı olmalı .
$table->foreign('user_id')
->references('id')
->on('users')
->onDelete('cascade');
Yani bu sorunla karşılaşırsanız muhtemelen şu ekranla karşılaşacaksınız .
Karşılaştığım sorunu nasıl çözdüğüme gelirsek ilk önce rollback yaptım daha sonra migrate ettim .Kayıt yapamaya çalışınca ilk önce hata aldım ama sonradan yukarda belirttiğim gibi user kaydı oluşturup gerçek bir user kaydı ile kayıt yaptım .

Gördüğünüz gibi user kaydı oluşturdum user_id 2 olarak verdim ve kayıt bundan sonra gerçekleşti .
Sorunum kalmadı umarım beni bu kadar uğraştıran şey sizi uğraştırmaz .