resolveUnitId($user); return Student::where('unit_id', $unitId) ->orderBy('created_at', 'desc') ->get(); } public function findById(int $id): ?Student { return Student::find($id); } public function create(User $user, array $data): Student { $unitId = $this->resolveUnitId($user); return Student::create(array_merge($data, ['unit_id' => $unitId])); } public function update(int $id, array $data): ?Student { $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; } }