Един от начините, по които можете да постигнете това, което се опитвате да направите, е:
Deal:where('status', 'active')
->get()
->groupBy('type')
->map(function($deal) {
return $deal->take(3);
});
Разбира се, трябва да проверите дали заявката връща null или empty обекти и имайте предвид, че заявката връща всички активни Deal (s) (филтрирането се извършва в Collection ), което може да е неефективно, ако има много Deal (s)