where('status', 1) ->where('target_type', $targetType) ->orderBy('sort') ->get(); foreach ($sources as $source) { foreach ($source->match_domains ?? [] as $domain) { $domain = strtolower((string) $domain); if ($domain === '*' || $domain === 'any') { return $source; } if ($host === $domain || Str::endsWith($host, '.'.$domain)) { return $source; } } } return null; } }