@php $positionGroups = [ 'Striker' => ['slug' => 'striker', 'label' => 'Strikers'], 'Midfielder' => ['slug' => 'midfielder', 'label' => 'Midfielders'], 'Defender' => ['slug' => 'defender', 'label' => 'Defenders'], 'Goalkeeper' => ['slug' => 'goalkeeper', 'label' => 'Goalkeepers'], ]; @endphp
@php $heroPlayer = isset($players) && $players->isNotEmpty() ? ($players->first(fn ($p) => filled($p->photo)) ?? $players->first()) : null; $playerCount = isset($players) ? $players->count() : 0; @endphp {{-- Hero: same split pattern as Highlights --}}
First team

Our squad

{{ $playerCount }} {{ Str::plural('player', $playerCount) }} Match ready

Meet the talented players who represent Life Football Club โ€” skill, heart, and pride in every match.

Browse roster
@if ($heroPlayer && filled($heroPlayer->photo))
{{ $heroPlayer->name }}
@else
Life Football Club
@endif
{{-- Chip Filters (scroll target for hero CTA) --}}
@foreach($positionGroups as $posKey => $pos) @endforeach
{{-- Players Grid (original big overlay cards) --}}
@if($players->isEmpty())

No players to display yet. Check back soon!

@else
@foreach($players as $player) @php $rawPosition = trim((string) ($player->position ?? '')); $positionSlug = 'other'; foreach ($positionGroups as $canonical => $meta) { if (strcasecmp($rawPosition, $canonical) === 0) { $positionSlug = $meta['slug']; break; } } if ($positionSlug === 'other' && $rawPosition !== '') { $lower = strtolower($rawPosition); $positionSlug = match (true) { str_contains($lower, 'strik') || str_contains($lower, 'forward') => 'striker', str_contains($lower, 'mid') => 'midfielder', str_contains($lower, 'defend') => 'defender', str_contains($lower, 'goal') => 'goalkeeper', default => 'other', }; } @endphp
@endforeach
@endif
@include('partials.highlight-hero-styles') @if(!$players->isEmpty()) @endif