resolveUnitId($user); return Holiday::where('unit_id', $unitId) ->orderBy('holiday_date', 'asc') ->get(); } public function findById(int $id): ?Holiday { return Holiday::find($id); } public function create(User $user, array $data): Holiday { $unitId = $this->resolveUnitId($user); return Holiday::create(array_merge($data, ['unit_id' => $unitId])); } public function update(int $id, array $data): ?Holiday { $model = $this->findById($id); if (!$model) { return null; } $model->update($data); return $model->fresh(); } public function delete(int $id): bool { $model = $this->findById($id); if (!$model) { return false; } return $model->delete(); } private function resolveUnitId(User $user): int { $unit = $user->units()->first(); abort_if(!$unit, 403, 'Usuário sem unidade associada.'); return $unit->id; } }