Kunci asing harus sudah ada di database, oleh karena itu saya sarankan untuk mengambil dua langkah. Saya juga menyarankan untuk membuat kolom user_id
tidak ditandatangani:
public function up()
{
Schema::table('posts', function(Blueprint $table)
{
$table->integer('user_id')->after('id')->nullable()->unsigned();
});
Schema::table('posts', function(Blueprint $table)
{
$table->foreign('user_id')->references('id')->on('users');
});
}