Следующее предложение:
$table->foreign('user_id')->references('id')->on('users');
просто говорит БД о создании связи между родительским / внешним столбцами, но для этого столбец должен существовать ранее, поэтому:
$table->unsignedInteger('user_id'); // first this
$table->foreign('user_id')->references('id')->on('users'); // then this
Вы должны сделать это для каждого внешнего ключа.
Примечание:
Laravel не нуждается в том, чтобы вы определяли эти ссылки, потому что он не использует это, только дляради согласованности базы данных.