Laravel: cómo establecer la clave primaria y la clave externa en cadena

No estoy usando el incremento automático para la identificación sino que estoy usando la identificación única de 32 caracteres. Entonces, cuando creo una relación y una consulta, obtengo un valor nulo porque mi FK espera int mis modelos

class User extend Eloquent {
    public $incrementing = false; 
}

class Reservation extend Eloquent {
    public $incrementing = false; 
}

así que cuando consulto esto

$reservations = Reservation::with('user')->where('user_id', '=', '22beb4892ba944c8b1895855e1d4d1ad')->get();
i could not retrieve the users information but the reservations info is working fine
when i try to listen for query. eg:
Event::listen('illuminate.query', function($query, $bindings, $time, $name){
    var_dump($query);
    var_dump($bindings);
});

entiendo esto

string(46) "select * from `reservation` where `user_id` = ?"
array(1) {
  [0]=>
  string(36) "22beb4892ba944c8b1895855e1d4d1ad"
}
string(53) "select * from `user` where `user`.`id` in (?)"
array(1) {
  [0]=>
  int(0)
}

el problema está en la segunda consulta, no pude recuperar la información de los usuarios porque el usuario.id esperaba int.

Respuestas a la pregunta(1)

Su respuesta a la pregunta