Вы можете изменить маршруты, чтобы использовать разные контроллеры для разных ролей:
Route::middleware("auth")->get("/home", function(){
$user = \Auth::user();
if ($user->hasRole("admin")) {
return app()
->make(\App\Http\Controllers\AdminDashboardController::class)
->callAction("index", []);
} else {
return app()
->make(\App\Http\Controllers\UserDashboardController::class)
->callAction("index", []);
}
});
Примечание : предыдущий ответ, который я написал, не работал, потому что Laravel сохраняет маршруты поих URL и не заботятся о промежуточном программном обеспечении или группе, поэтому последний всегда перезаписывает предыдущий.