user()->roles()->first()->name; $key = sprintf('user_role:%d', auth()->id()); $role = Cache::remember($key, now()->addMinutes(5), fn (): string => auth()->user()->roles()->first()->name); return match (UserRole::from($role)) { UserRole::Admin => new AdminWorklist, UserRole::Technician => new TechnicianWorklist, UserRole::Radiologist => new RadiologistWorklist, UserRole::ReferringDoctor => new ReferrerWorklist, default => throw new Exception("Unknown user role: {$role}"), }; } }