Есть несколько вещей, которые вы, возможно, захотите рассмотреть.
1) ваша функция не будет выполняться дальше после оператора return. Вы создаете пользователя с оператором возврата, поэтому приведенный ниже код не будет выполняться. Я рекомендую сохранить возвращаемый объект в какую-либо переменную.
// let's say
$user = User::create([
'name' => $data['name'],
'last_name' => $data['last_name'],
'email' => $data['email'],
'mobile'=>$data['mobile'],
'username'=>$data['username'],
'password' => Hash::make($data['password']),
'propic'=>'user-pic.png',
'user_roles' =>'customer',
]);
// then you can simply get it's value by
$user_id = $user->id; // you won't need to query last added row's value.
2) Если роль пользователя не сохраняется в вашей базе данных, проверьте, назначили ли вы это поле 'user_roles' как заполняемое в модели User .