Puoi usare groupBy()
metodo con chiusura:
$months = NewsItem::groupBy(function($d) {
return Carbon::parse($d->created_at)->format('m');
})->get();
Oppure ottieni prima i dati e poi usa groupBy()
sulla collezione Eloquent:
$months = NewsItem::get()->groupBy(function($d) {
return Carbon::parse($d->created_at)->format('m');
});