flights(); $alliances = Alliance::withCount('airlines')->pluck('id', 'internal_name'); $flownAllianceAirlines = $flights ->filter(fn(UserFlight $f) => $f->airline?->alliance !== null) ->groupBy(fn(UserFlight $f) => $f->airline->alliance->internal_name) ->map(fn($group) => $group->pluck('airline.internal_name')->unique()->count()); $check = fn(string $alliance): int => $flownAllianceAirlines->get($alliance, 0); $this->awardProgress($check('skyteam'), 'airlines_alliances.all_skyteam'); $this->awardProgress($check('oneworld'), 'airlines_alliances.all_oneworld'); $this->awardProgress($check('star_alliance'), 'airlines_alliances.all_star_alliance'); $this->awardProgress($check('vanilla_alliance'), 'airlines_alliances.all_vanilla_alliance'); } }