registerLibraryBinding(); $this->registerValidator(); } public function registerLibraryBinding(): void { $this->app->singleton('libphonenumber', function ($app) { return PhoneNumberUtil::getInstance(); }); $this->app->alias('libphonenumber', PhoneNumberUtil::class); } public function registerValidator(): void { $this->callAfterResolving('validator', function (Factory $validator) { $validator->extendDependent('phone', function ($attribute, $value, array $parameters, $validator) { return (new Rules\Phone) ->setValidator($validator) ->setParameters($parameters) ->passes($attribute, $value); }); }); Rule::macro('phone', function () { return new Rules\Phone; }); } }