$users * @property Collection $userDishes * * @method static create(array $data) * @method static findOrFail(int $dish_id) * @method static DishFactory factory($count = null, $state = []) */ class Dish extends Model { /** @use HasFactory */ use HasFactory; protected $fillable = ['planner_id', 'name', 'recurrence']; protected $casts = []; protected static function booted(): void { static::addGlobalScope(new BelongsToPlanner); } public function users(): BelongsToMany { return $this->belongsToMany(User::class, 'user_dishes', 'dish_id', 'user_id') ->orderBy('name'); } public function userDishes(): HasMany { return $this->hasMany(UserDish::class, 'dish_id', 'id'); } public function recurrences(): HasManyThrough { return $this->hasManyThrough( UserDishRecurrence::class, UserDish::class, 'dish_id', 'user_dish_id', 'id', 'id' ); } }