Uma das maneiras de você conseguir o que está tentando fazer é:
Deal:where('status', 'active')
->get()
->groupBy('type')
->map(function($deal) {
return $deal->take(3);
});
Claro, você precisa verificar se a consulta retorna
null
ou empty
objetos e observe que a consulta retorna todos os objetos ativos Deal
(s) (a filtragem acontece na Collection
) que pode não ser eficiente se houver muitos Deal
(s)