user(); return $supervisor; } protected function scopeEstablishmentQuery(Builder $query, string $establishmentColumn = 'establishment_id'): Builder { $supervisor = $this->supervisor(); $query->whereHas('establishment', function (Builder $query) use ($supervisor) { $query->where('organization_id', $supervisor->organization_id); if ($supervisor->establishment_id !== null) { $query->where('id', $supervisor->establishment_id); } }); if ($supervisor->establishment_id !== null && $establishmentColumn !== '') { $query->where($establishmentColumn, $supervisor->establishment_id); } return $query; } protected function scopeMachineRelationQuery(Builder $query): Builder { $supervisor = $this->supervisor(); return $query->whereHas('machine.establishment', function (Builder $query) use ($supervisor) { $query->where('organization_id', $supervisor->organization_id); if ($supervisor->establishment_id !== null) { $query->where('id', $supervisor->establishment_id); } }); } }