Como criar uma regra de validação personalizada para 4 colunas combinadas únicas

Como o padrão do Laravelunique:tablename regra de validação permite apenas duas colunas; em cenários em que mais de duas colunas são únicas, lança diretamente oQueryException comSQLSTATE errorcode 23000. Como solução temporária, estou capturando a exceção e lançando um aviso como este:

try{
    //My query that might throw an exception for a duplicate entry
} catch (\Exception $e){
    return $e->getCode() == 23000 ?
           redirect()->back()->with('warning','Duplicate entry') :
           redirect()->back()->with('error','Unknown Error Occurred');
}

O problema é que, para todos os outros cenários em que o código de erro não é 23000, apenas uma mensagem de erro será exibida.Unknown Error Occurred ao invés deOps. Claramente, a depuração será um pesadelo.

Então, eu procurei alternativas. Eu tive que escolher uma das duas opções: a) Use umpacote de terceiros ou b) Crie umregra de validação customizada

Eu escolhi a opção b. Mas estou lutando com a maneira de construir um eu mesmo. Quando observei um exemplo (para regra inline única):

$validator = Validator::make($request->all(), [
    'title' => [
       'required',
       'max:255',
        function($attribute, $value, $fail) {
            if ($value === 'foo') {
                return $fail($attribute.' is invalid.');
            }
        },
    ],
]);

... Percebi que a regra pode ser aplicada a um único atributo e valor. Mas eu tenho 4 atributos e valores para verificar se eles são realmente uma entrada única. Como eu posso fazer isso?

questionAnswers(1)

yourAnswerToTheQuestion