Guilherme, beleza? Estou postando abaixo uma tratativa que faço em um sistema. Ele verifica se o telefone que esta sendo cadastrado é repetido.
Se ocorrer um erro ele vai dar um return com um flash de erro.
É uma forma que neste momento me atende neste sistema.
Existem outras formas de tratar.
Acho que vale a pena dar uma olhada na documentação do Laravel:
https://laravel.com/docs/5.8/errors
E um exemplo, uma forma.
public function store(CriarTelefoneFormRequest $request, int $territorioId) {
try {
$criarTelefone = new CriarTelefone;
$telefone = $criarTelefone->criarTel(
$territorioId,
$request->selectUnidade,
$request->inputNumero,
$request->inputTel,
$request->Radio
);
}
catch (QueryException $exception) {
$request->session()
->flash(
'repetido',
"Telefone {$request->inputTel} repetido - Não cadastrado!"
);
return redirect()->route('form_listar_telefones', [$territorioId]);
}
$request->session()
->flash(
'mensagem',
"Telefone {$telefone->telefone} adicionado com sucesso!"
);
return redirect()->route('form_listar_telefones', [$territorioId]);
}