Você pode usar
groupBy()
método com fechamento: $months = NewsItem::groupBy(function($d) {
return Carbon::parse($d->created_at)->format('m');
})->get();
Ou obtenha os dados primeiro e depois use
groupBy()
na coleção Eloquent: $months = NewsItem::get()->groupBy(function($d) {
return Carbon::parse($d->created_at)->format('m');
});