Cómo crear una regla de validación personalizada para 4 columnas combinadas únicas

Since Laravel's defaultunique:tablenamea regla de validación @ solo permite dos columnas; en escenarios donde más de dos columnas son únicas, arroja directamente laQueryException conSQLSTATE errorcode 23000. Como solución temporal, estoy captando la excepción y lanzando una advertencia como esta:

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');
}

El problema es que, para cualquier otro escenario donde el código de error no sea 23000, solo veré un mensaje de errorUnknown Error Occurred en lugar de Whoops. Claramente, la depuración será una pesadilla.

Así que busqué alternativas. Tuve que elegir una de dos opciones: a) Usar una paquete de terceros o, b) Crear una regla de validación personalizada

Elegí la opción b. Pero estoy luchando con cómo puedo construir uno yo mismo. Cuando miré un ejemplo (para la regla en línea de una sola vez):

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

... Me di cuenta de que la regla solo se puede aplicar a un único atributo y valor. Pero tengo 4 atributos y valores para verificar si realmente son una entrada única. ¿Cómo puedo hacer eso

Respuestas a la pregunta(1)

Su respuesta a la pregunta