Verifique seu
id
tipo. O Laravel 4 cria um id incremental com um int(10) unsigned. Se você criar um inteiro básico e tentar colocar uma chave estrangeira nele, ele falhará. Conforme sugerido na documentação neste link , você deve criar o id estrangeiro com
$table->unsignedInteger(YOUR_ID_NAME);
para fazê-lo funcionar.