where('domain', $domain)->first(); if (! $record) { return null; } $findings = ContentModerationFinding::query() ->whereJsonContains('matched_domains_json', $domain) ->get(['id', 'user_id', 'campaign_key', 'matched_keywords_json', 'content_type', 'is_false_positive']); $topKeywords = $findings ->flatMap(static fn (ContentModerationFinding $finding): array => (array) $finding->matched_keywords_json) ->filter() ->countBy() ->sortDesc() ->take(8) ->keys() ->values() ->all(); $topContentTypes = $findings ->pluck('content_type') ->filter() ->countBy() ->sortDesc() ->take(8) ->map(static fn (int $count, string $type): array => ['type' => $type, 'count' => $count]) ->values() ->all(); $record->forceFill([ 'linked_users_count' => $findings->pluck('user_id')->filter()->unique()->count(), 'linked_findings_count' => $findings->count(), 'linked_clusters_count' => $findings->pluck('campaign_key')->filter()->unique()->count(), 'top_keywords_json' => $topKeywords, 'top_content_types_json' => $topContentTypes, 'false_positive_count' => $findings->where('is_false_positive', true)->count(), ])->save(); return $record->fresh(); } }