where('tenant_id', (int) $tenant->getKey()) ->where('finding_type', Finding::FINDING_TYPE_DRIFT) ->latest('updated_at') ->get(); $latest = $findings->max('updated_at') ?? $findings->max('created_at'); $isStale = $latest !== null && $latest->lt(now()->subDays(30)); $state = match (true) { $findings->isEmpty() => EvidenceCompletenessState::Missing->value, $isStale => EvidenceCompletenessState::Stale->value, default => EvidenceCompletenessState::Complete->value, }; return [ 'dimension_key' => $this->key(), 'state' => $state, 'required' => true, 'source_kind' => 'model_summary', 'source_record_type' => Finding::class, 'source_record_id' => null, 'source_fingerprint' => $findings->max('fingerprint'), 'measured_at' => $latest, 'freshness_at' => $latest, 'summary_payload' => [ 'drift_count' => $findings->count(), 'open_drift_count' => $findings->filter(fn (Finding $finding): bool => $finding->hasOpenStatus())->count(), ], 'fingerprint_payload' => [ 'latest' => $latest?->format(DATE_ATOM), 'count' => $findings->count(), ], 'sort_order' => 40, ]; } }