with('user:id,username') ->whereNotNull('achieved_at') ->latest('achieved_at'); if ($request->filled('username')) { $query->whereHas('user', function ($userQuery) use ($request): void { $userQuery->where('username', 'like', '%'.$request->string('username')->toString().'%'); }); } if ($request->filled('achievement_key')) { $query->where('achievement_key', $request->string('achievement_key')->toString()); } $records = $query->paginate(30)->withQueryString(); $summary = [ 'total_definitions' => count($definitions), 'unlocked_records' => UserAchievement::query()->whereNotNull('achieved_at')->count(), 'unlocked_users' => UserAchievement::query()->whereNotNull('achieved_at')->distinct('user_id')->count('user_id'), ]; $topAchievements = UserAchievement::query() ->whereNotNull('achieved_at') ->select('achievement_key', DB::raw('count(*) as unlocked_count')) ->groupBy('achievement_key') ->orderByDesc('unlocked_count') ->limit(10) ->get(); return view('admin.achievements.index', compact('definitions', 'records', 'summary', 'topAchievements')); } }