public function rules(): array 	{ 		return [ 			'name' => ['required', 'string', 'max:50'], 			'email' => ['required', 'email', 'max:50'], 			'phone' => ['required', 'string', 'max:20'], 			'company_name' => ['nullable', 'required_with:vat', 'string', 'max:50'], 			'vat' => ['nullable', 'required_with:company_name', 'string', 'max:20'], 			'note' => ['nullable', 'string', 'max:500'],  			'delivery_address' => ['required', 'string', 'max:50'], 			'delivery_city' => ['required', 'string', 'max:50'], 			'delivery_zip_code' => ['required', 'string', 'max:20'], 			'delivery_country' => ['bail', 'required', 'string', 'uppercase', 'size:2'],  			'billing_address' => ['nullable', 'string', 'max:50'], 			'billing_city' => ['nullable', 'string', 'max:50'], 			'billing_zip_code' => ['nullable', 'string', 'max:20'], 			'billing_country' => ['bail', 'nullable', 'string', 'uppercase', 'size:2'],  			'products' => ['required', 'array'], 			'products.*.product_id' => ['required', 'uuid', 'distinct', new ProductIsAvailableForOrder], 			'products.*.quantity' => ['required', 'integer', 'min:1'], 		]; 	}