Как написать запрос select с подзапросом с помощью laravel Eloquent Querybuilder?

Я получил результат запроса.

Мой простой SQL:

SELECT o2.driver_id, total_delieveries, DATE_FORMAT(o1.created_at ,'%Y-%m-%d') AS created_at FROM ( SELECT driver_id, created_at, COUNT(driver_id) AS total_delieveries FROM orders WHERE is_paid = 0 AND order_status = 5 AND created_at BETWEEN "'.$first_Day.'" AND "'.$last_Day.'" GROUP BY DATE_FORMAT(created_at ,'%Y-%m-%d'),driver_id ) o1 INNER JOIN orders o2 ON o1.driver_id = o2.driver_id GROUP BY o1.created_at 

В источнике Laravel я написал запрос:

 $responseData = DB::select(DB::raw('select t.driver_id,total_delieveries,DATE_FORMAT(q1.created_at,\'%Y-%m-%d\') as created_at from ( SELECT driver_id, created_at, COUNT( driver_id ) AS total_delieveries FROM orders WHERE is_paid=0 AND order_status = 5 AND created_at BETWEEN "'.$first_Day.'" AND "'.$last_Day.'" GROUP BY DATE_FORMAT(created_at,\'%Y-%m-%d\'),driver_id) q1 INNER JOIN orders t ON q1.driver_id = t.driver_id GROUP BY q1.created_at')); 

Я получил результат, который хотел, но я хочу написать его лучше.

Пожалуйста, скажите мне правильный и правильный способ написать этот запрос.

    Также покажите этот ответ и для своего варианта:

     $subQuery = \DB::table('orders')->selectRaw('driver_id, created_at, COUNT(driver_id) AS total_delieveries') ->where('is_paid', 0) ->where('order_status', '5') ->whereBetween('created_at', [$first_Day, $last_Day]) ->groupBy(\DB::raw('DATE_FORMAT(created_at ,"%Y-%m-%d"),driver_id')); $q = \DB::table(\DB::raw('('.$subQuery->toSql().') as o1')) ->selectRaw('o2.driver_id,total_delieveries,DATE_FORMAT(o1.created_at ,"%Y-%m-%d") AS created_at') ->join('orders as o2', 'o1.driver_id', '=', 'o2.driver_id') ->groupBy('o1.created_at') ->mergeBindings($subQuery) ->get();