Рефакторинг кода Laravel

подскажите пожалуйста, код рабочий но хороший ли он с точки зрения написании правильного кода? Можно ли его как нибудь отрефакторить ?

У User есть связь branches У Branch есть связь kassa_group

$user = User::find(1);

$collection = collect();

foreach ($user->branches as $branch) {
    foreach ($branch->kassa_group as $kassa_group) {
        $collection->push($kassa_group);
    }
}

return $collection->all();

Ответы (1 шт):

Автор решения: Serge Koflik

Для упрощения задачи вы можете использовать тип связи has-many-through:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Model;

class User extends Model
{
    public function kassa_group()
    {
        return $this->hasManyThrough(KassaGroup::class, Branch::class);
    }
}

тогда в контроллере достаточно будет вызвать:

$user = User::find(1);

return $user->kassa_group;

для получения идентичного результата

→ Ссылка