news_date が format() メソッドを使えるように、モデルファイルに
protected $dates = ['news_date'];
を記述してから、
// 方法 1.
$model = \App\News::inActive();
$all_loop = $model->get();
$all_loop->map(function ($v) {
$v['year'] = optional($v->news_date)->format("Y");
});
$group_news_loop = $all_loop->groupBy('year');
最下層のオブジェクトは Eloquentモデルではなく配列になります。
なのでこの方法はあまりお勧めしません。
$all_loop = \DB::table('news')
->select(\DB::raw("*,DATE_FORMAT( news_date ,'%Y') as year"))
->get();
$group_news_loop = $all_loop->groupBy('year');
dd( $group_news_loop );