Comprueba tu id
tipo. Laravel 4 crea una identificación incremental con un int(10) sin firmar. Si crea un número entero básico e intenta colocarle una clave externa, fallará.
Como se sugiere en la documentación en este enlace , debe crear la identificación extranjera con $table->unsignedInteger(YOUR_ID_NAME);
para que funcione.