Я, конечно, не суперэксперт, но, мне кажется, у вас не особо громоздкий код в этом месте. Я бы сделал так:
Цикл с суммой можно заменить этим:
$sumBalance = $user->sum('balance');
Подробнее о коллекциях и методах можно почитать
тут. Но это если вам будет нужна
$user
в чистом виде в представлении, если они не будут Вам нужны, то можно вообще не запрашивать всех пользователей из бд, а использовать
агрегатную функцию sum()
$ordersWin
и
$ordersAllWin
идентичны, не понимаю в чем разница. Если хотите оптимизировать запросы, то можно сначала получить записи со статусами 1 и 2 с помощью одного запроса, а затем группировать по статусам используя
метод groupBy.
Кроме того, возможно, Вы специально скрыли это, чтобы вопрос не был большим, но Ваши данные не передаются в приложение сейчас. Для того, чтобы они передавались Вы должны во втором аргументе render передать массив с данными:
Inertia::render('Admin/Index', [
'key' => $value,
]);
Рекомендую почитать
о коллекциях, там есть полезные вещи. Также, если хотите оптимизировать взаимодействие с бд, рекомендую использовать метод
select и запрашивать только те столбцы, которые Вам нужны.