Laravel: измените необработанный запрос на «построитель запросов» или «красноречивый»

У меня есть этот фрагмент Laravel Query Builder, который работает нормально:

$records = DB::table('users')
    ->select(
        DB::raw('users.*, activations.id AS activation, 
                 (SELECT roles.name FROM roles 
                  INNER JOIN role_users 
                    ON roles.id = role_users.role_id
                  WHERE users.id = role_users.user_id LIMIT 1) 
                  AS role')
    )
    ->leftJoin('activations', 'users.id', '=', 'activations.user_id')
    ->where('users.id', '<>', 1)
    ->orderBy('last_name')
    ->orderBy('first_name')
    ->paginate(10);

Есть ли способ избежать использования необработанных запросов и получить тот же результат? Другими словами, как я могу написать это в стиле «построителя запросов»? Могу ли я перевести это в Eloquent запрос?

Спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос