Глядя на ваш код:
catch(Illuminate\Database\QueryException $e){
следует заменить на:
catch(\Illuminate\Database\QueryException $e){
(обратите внимание на обратную косую черту) или, может быть, более общий
catch(\Exception $e){
, если вы хотите поймать исключение любого типа.
Кроме того, вы использовали:
$error_code = $e->errorInfo[1];
if($error_code == 1062){
$raw = Raw::where('name', $l)->first();
}
а что, если $ error_code отличается? Тогда вы ничего не установите $raw
.
Кроме того, в случае, если вы поймаете это исключение, вы, вероятно, должны записать его так:
catch(\Illuminate\Database\QueryException $e){
\Log::error($e);
$error_code = $e->errorInfo[1];
if($error_code == 1062){
$raw = Raw::where('name', $l)->first();
}
}
Теперь вы действительно не знаете, почему произошло это исключение, если вы не регистрируете его.