Это можно сделать в sql (даже с учением). Также возможно обработать это в php. Вам нужно выбрать одно решение, которое вам легко.
В sql / doctrine вам нужно будет объединить orderDetails, group by order.id, выбрать order + использовать функцию SUM (orderDetail.id) - order.id в качестве промежуточного итога и, наконец, orderby subtotal
в php вам придется сортировать массив объектов по вашему методу subtotal, см. этот пост о том, как это сделать: https://stackoverflow.com/a/4282423/6324627
Я нашел ответ здесь . По сути, это не изменило мою оболочку входа обратно в bash.