$result = User::query()
->where(function ($query) {
$query->whereHas('roles', function ($q) {
$q->where('slug', 'translator');
$q->orWhere('slug', 'user');
});
$query->orWhereDoesntHave('roles');
})
->where(function ($query) use ($str) {
$query->where('email', 'like', '%' . $str . '%');
$query->orWhere('phone', 'like', '%' . $str . '%');
})
->with('roles')
->get();
Они не сталкивались с проблемами поддержки и рефакторинга такой магии. Не сталкивались с проблемами ошибок посреди кода.
Бегают, тычут пальцами и кричат "ха-ха-ха, можно в 10 раз короче написать", не понимая, что оставляют после себя болото.
Это нормально. Большинство всегда ошибается, т.к. большинство не разбирается.