Como posso fazer uma subconsulta no laravel eloquent?

Quando eu uso o db raw, ele funciona

Minha consulta está usando db raw como este:

$products = DB::select(DB::raw('SELECT * 
                FROM (
                    SELECT a.*, b.name AS store_name, b.address
                    FROM products a
                    JOIN stores b ON b.id = a.store_id
                    WHERE a.category_id = '.$category_id.'
                    ORDER BY a.total_sold DESC, a.updated_at DESC
                    LIMIT '.$num.'
                ) AS product
                GROUP BY store_id'));

Funciona. Mas eu quero mudar isso, use laravel eloquent

Eu tento assim:

$products = Product::where('category_id', '=', $category_id)
     ->with('store')
     ->groupBy('store_id')
     ->orderBy('total_sold','desc')
     ->orderBy('updated_at', 'desc')
     ->take($num)
     ->get();

Também funciona. Mas orderBy updated_at não executado

Como posso resolver isso?

questionAnswers(1)

yourAnswerToTheQuestion