в вашем случае нет необходимости в двух промежуточных программах.
public function __construct()
{
$this->middleware('auth');
}
эквивалентно тому, что вы пытаетесь сделать, поскольку «auth» все еще действует для «auth: admin».
но вы все равно можете поместить свое промежуточное ПО в файлы Routes (web.php / api.php), как это
Route::group(['middleware'=>'auth:admin'],function (){
Route::get('/', 'HRJob@userdetailsAdmin');
});
Route::group(['middleware'=>'auth'],function (){
Route::get('/', 'HRJob@userdetails');
});
надеюсь, это поможет.
--- редактировать ---
в вашем случае, с двумя разными таблицами для аутентификации и без создания пользовательского промежуточного программного обеспечения для «любого аутентификации», вы просто пропускаете метод check ():
if (Auth::guard('admin')->check()) {
$this->middleware('auth:admin');
} else {
$this->middleware('auth');
}
что эквивалентно
if (!Auth::guard('admin')->check()) {
$this->middleware('auth');
}