parse($value); $this->reason = $phoneUtil->isPossibleNumberWithReason($phone); return $this->reason === \libphonenumber\ValidationResult::IS_POSSIBLE; } catch (\Exception $e) { return false; } } public function message() { return match ($this->reason) { \libphonenumber\ValidationResult::IS_POSSIBLE => 'The :attribute is not valid for an unknown reason.', \libphonenumber\ValidationResult::INVALID_COUNTRY_CODE => 'The :attribute does not have a valid country code.', \libphonenumber\ValidationResult::TOO_SHORT => 'The :attribute is too short.', \libphonenumber\ValidationResult::TOO_LONG => 'The :attribute is too long.', \libphonenumber\ValidationResult::IS_POSSIBLE_LOCAL_ONLY => 'The :attribute is not a valid phone number (local number).', \libphonenumber\ValidationResult::INVALID_LENGTH => 'The :attribute does not have a valid length.', default => 'The :attribute is not a valid phone number.', }; } }