Jedním ze způsobů, jak můžete dosáhnout toho, oč se snažíte, je:
Deal:where('status', 'active')
->get()
->groupBy('type')
->map(function($deal) {
return $deal->take(3);
});
Samozřejmě je potřeba zkontrolovat, zda dotaz vrací null nebo empty objektů a mějte na paměti, že dotaz vrací všechny aktivní Deal (s) (filtrování probíhá na Collection ), což může být neefektivní, pokud existuje mnoho Deal (s)