= NOW() - INTERVAL '3 DAY' st.received_at::DATE >= NOW() - INTERVAL '%d DAY' AND st.workflow_level < %d AND st.read_at IS NULL GROUP BY sa.user_id) AS cte ON cte.user_id = users."id" WHERE roles."name" = '%s' AND users.is_active = TRUE GROUP BY users."id", cte.assign_counts ORDER BY users.display_name SQL; $rows = DB::select(sprintf($sql, $days, $workflow_level, Role::Radiologist->value)); foreach ($rows as $row) { $row->last_seen = UserService::getLastSeen((int) $row->id); } return $rows; } public static function activeRads(): array { return cache() ->remember('active_rads', now()->addMinutes(5), fn () => DB::table('users') ->join('model_has_roles', 'users.id', '=', 'model_has_roles.model_id') ->join('roles', 'model_has_roles.role_id', '=', 'roles.id') ->where('roles.name', Role::Radiologist->value) ->where('users.is_active', true) ->orderBy('users.display_name') ->pluck('users.display_name', 'users.id') ->toArray()); } }