attributes->get('syncToken'); abort_unless(collect($token->abilities ?? [])->contains('academic_years'), 403, 'Token tidak memiliki akses ke data tahun ajaran.'); $items = AcademicYear::query() ->orderByDesc('is_active') ->orderByDesc('start_year') ->get(['id', 'name', 'start_year', 'end_year', 'is_active', 'updated_at']); return response()->json([ 'success' => true, 'source' => 'database-kesiswaan', 'resource' => 'academic_years', 'count' => $items->count(), 'data' => $items, ]); } }