rank : 0; $employees = Permission::query() ->select('id', 'rank_name', 'badge', 'staff_color', 'job_description') ->when($userRank < $minRankToSeeHidden, fn ($query) => $query->where('hidden_rank', false)) ->where('id', '>=', $minStaffRank) ->orderByDesc('id') ->with(['users' => function ($query) use ($minRankToSeeHidden) { $query->select('id', 'username', 'rank', 'motto', 'look', 'hidden_staff', 'online') ->when(Auth::check() && Auth::user()->rank < $minRankToSeeHidden, fn ($query) => $query->where('hidden_staff', false)); }]) ->get(); if ($cacheEnabled) { $cacheTimer = (int) setting('cache_timer'); Cache::put('staff_positions', $employees, now()->addMinutes($cacheTimer)); } return $employees; } public function fetchEmployeeIds(): array { $cacheEnabled = setting('enable_caching') === '1'; if ($cacheEnabled && Cache::has('staff_ids')) { return Cache::get('staff_ids'); } $minRank = (int) setting('min_staff_rank', 3); $staffIds = User::query()->select('id') ->where('rank', '>=', $minRank) ->get() ->pluck('id')->toArray(); if ($cacheEnabled) { $cacheTimer = (int) setting('cache_timer'); Cache::put('staff_ids', $staffIds, now()->addMinutes($cacheTimer)); } return $staffIds; } }