where('tenant_id', (int) $tenant->getKey()) ->where('report_type', StoredReport::REPORT_TYPE_PERMISSION_POSTURE) ->latest('id') ->first(); $payload = is_array($report?->payload) ? $report->payload : []; $requiredCount = (int) ($payload['required_count'] ?? 0); $grantedCount = (int) ($payload['granted_count'] ?? 0); $state = match (true) { ! $report instanceof StoredReport => EvidenceCompletenessState::Missing->value, $requiredCount > 0 && $grantedCount < $requiredCount => EvidenceCompletenessState::Partial->value, default => EvidenceCompletenessState::Complete->value, }; return [ 'dimension_key' => $this->key(), 'state' => $state, 'required' => true, 'source_kind' => 'stored_report', 'source_record_type' => $report instanceof StoredReport ? StoredReport::class : StoredReport::class, 'source_record_id' => $report instanceof StoredReport ? (string) $report->getKey() : null, 'source_fingerprint' => $report?->fingerprint, 'measured_at' => $report?->updated_at, 'freshness_at' => $report?->updated_at, 'summary_payload' => [ 'posture_score' => $payload['posture_score'] ?? null, 'required_count' => $requiredCount, 'granted_count' => $grantedCount, 'payload' => $payload, ], 'fingerprint_payload' => [ 'fingerprint' => $report?->fingerprint, 'required_count' => $requiredCount, 'granted_count' => $grantedCount, ], 'sort_order' => 20, ]; } }