{{-- Expects: $title, $icon (Material Symbols name), $railId (unique string), $courses (Collection) Each $course may carry ->pivot->status (todo|inprog|complete|overdue) and ->pivot->progress (0-100). --}}
{{ $icon }}

{{ $title }}

View All
@foreach($courses as $course) @php $status = $course->pivot->status ?? 'not_started'; $progress = $course->pivot->progress_percent ?? 0; $badge = match($status) { 'completed' => ['label' => 'Completed', 'class' => 'bg-secondary-container text-on-secondary-container'], 'overdue' => ['label' => 'Overdue', 'class' => 'bg-error-container text-error'], 'in_progress' => ['label' => $progress . '% done', 'class' => 'bg-primary/10 text-primary'], default => ['label' => 'Not started', 'class' => 'bg-surface-container-high text-on-surface-variant'], }; @endphp
@if($course->thumbnail) {{ $course->title }} @else
school
@endif
{{ $course->duration_minutes }} min
@if($course->category === 'service_specific')

Service Specific

@endif

{{ $course->title }}

{{ $badge['label'] }}
@endforeach