user(); $classes = $prof->classes()->whereNull('archivee_a')->orderBy('nom')->get(); $resultats = $classes->map(function (Classe $classe) { $corrections = Correction::whereHas('labSession', fn ($q) => $q->whereIn('seance_id', $classe->seances()->select('id'))) ->latest() ->limit(50) ->get(); return [ 'classe' => $classe, 'nombreCorrections' => $corrections->count(), 'reussiteMoyenne' => $corrections->isNotEmpty() ? (int) round($corrections->avg(fn ($c) => $c->note_max > 0 ? $c->note / $c->note_max * 100 : 0)) : null, 'observations' => $classe->observations()->with('eleve')->limit(5)->get(), ]; }); return view('resultats', ['resultats' => $resultats]); } }