Controlla il tuo id
genere. Laravel 4 crea un ID incrementale con un int(10) non firmato. Se crei un numero intero di base e provi a inserirci una chiave esterna, fallirà.
Come suggerito nella documentazione su questo link , dovresti creare l'ID esterno con $table->unsignedInteger(YOUR_ID_NAME);
per farlo funzionare.