Laravelのeloquentは強力なORMです。
例えば、hasManyでリレーション先につながってデータの個数を集計して、オブジェクトへ返してくれる方法があります。
Modelでリレーション記述
public function drinkNumber() { return $this->hasMany(Join::class, 'drink_id', 'id'); }
modelからリレーション先を自動集計したデータをオブジェクトへ
$drinks = Drink::withCount('drinkNumber')->where('status', 1)->get();
これで、$drinksの中には、Drink Modelのオブジェクトに加えて、集計したデータも一緒に含まれます。
カラム名は下記のルールで、名称付けられます。
リレーション名_count