【Laravel】Eloquentでeagar loadingした結果をごにょごにょしたい

withで指定した要素に無名関数を渡す

order by

Order::with(['order_detail' => function ($query) {
    $query->orderByDesc('created_at');
}])->get();
select * from `order_details` where `order_details`.`id` in (1) order by `created_at` desc

where

$date = new Carbon('20210731');
Order::with(['order_details' => function ($query) use ($date) {
    $query->where('created_at', '>=', $date->subMonthsNoOverflow(1));
}])->get();
select * from `order_details` where `order_details`.`id` in (1) and `created_at` >= '2021-06-30 00:00:00'

with

こういうこともできる

Order::with([
    'order_details' => function ($query) {
        $query->with([
            'products'
        ]);
    }
])->get();