['nullable', 'string', 'max:100'], 'lat' => ['required_without:postcode', 'nullable', 'numeric', 'between:-90,90'], 'lng' => ['required_without:postcode', 'nullable', 'numeric', 'between:-180,180'], 'fuel_type' => ['required', 'string'], 'radius' => ['nullable', 'numeric', 'between:0.1,50'], 'sort' => ['nullable', 'string', 'in:price,distance,updated,brand'], 'pricing_mode' => ['nullable', 'string', 'in:pump'], ]; } public function fuelType(): FuelType { return FuelType::fromAlias($this->string('fuel_type')->toString()); } public function radius(): float { return (float) $this->input('radius', 10.0); } public function sort(): string { return $this->input('sort', 'price'); } }