Чуть поподробнее про вот этот способ:
Validator::extend('foo', 'FooValidator@validate');
Рассказываю про ларавель 6+.
Создаём свой класс (в отдельном файле, конечно же), который ни от кого не наследуем. Его обязательно надо положить туда, где его подхватит автозагрузка классов. Это, например — app/, или любая созданная папка внутри app, например, app/validators/, или уже существующая папка, например, app/Http/Controllers/ если вам так нравится.
Дальше пишем в методе boot вашего сервис провайдера (который app/Providers/AppServiceProvider.php):
Validator::extend('foo', 'FooValidator@validate');
Здесь — foo — имя правила…