get() ->groupBy(fn(Achievement $a) => $a->category->name) ->map(fn($group) => $group->sortBy('id')->values()); $userAchievements = $user->achievements() ->with('achievement') ->orderBy('achievement_id') ->get() ->keyBy('achievement_id'); return Inertia::render('UserAchievements', [ 'user' => $user, 'canEdit' => auth()->id() === $user->id, 'isFollowing' => auth()->check() && auth()->user()->isFollowing($user), 'achievements' => $achievements, 'userAchievements' => $userAchievements, ]); } public function specific(User $user, Achievement $achievement) { $regions = match($achievement->internal_name){ 'fun_challenges.australian_states' => Country::where('code', 'AU')->first()->regions->toArray(), 'fun_challenges.chinese_provinces' => Country::where('code', 'CN')->first()->regions->toArray(), 'fun_challenges.canadian_provinces' => Country::where('code', 'CA')->first()->regions->toArray(), 'fun_challenges.us_states' => Country::where('code', 'US')->first()->regions->toArray(), default => [], }; return Inertia::render('Profile/UserAchievement', [ 'user' => $user, 'achievement' => $achievement, 'userAchievement' => $user->achievements()->where('achievement_id', $achievement->id)->first(), 'isFollowing' => auth()->check() && auth()->user()->isFollowing($user), 'flight_api_url' => FlightProfileController::getUserFlightApiURL($user), 'regions' => $regions, ]); } }