*/ private function extractAttributionParameters(Request $request): array { $utm = collect($request->only(AttributionKeys::UTM)) ->filter(fn ($value) => is_string($value)) ->map(fn (string $value) => Str::limit($value, 255, '')); $clickIds = collect($request->only(AttributionKeys::CLICK_ID)) ->filter(fn ($value) => is_string($value)); return $utm->merge($clickIds)->filter()->all(); } private function storeAttributionParameters(Request $request): void { $request->session()->put('attribution_parameters', $this->extractAttributionParameters($request)); } /** * @return array */ private function retrieveAttributionParameters(): array { return session()->pull('attribution_parameters', []); } }