$this->service->getAll(), ]); } public function store(LeaveRequestRequest $request): RedirectResponse { try { $this->service->create($request->validated()); Inertia::flash('toast', ['type' => 'success', 'message' => 'Permohonan cuti berhasil ditambahkan.']); } catch (ValidationException $e) { $firstError = collect($e->errors())->flatten()->first(); Inertia::flash('toast', ['type' => 'error', 'message' => $firstError ?? 'Terjadi kesalahan.']); } catch (\Exception $e) { Inertia::flash('toast', ['type' => 'error', 'message' => $e->getMessage()]); } return to_route('admin.sdm.leave-requests.index'); } public function update(LeaveRequestRequest $request, LeaveRequest $leaveRequest): RedirectResponse { try { $this->service->update($leaveRequest, $request->validated()); Inertia::flash('toast', ['type' => 'success', 'message' => 'Permohonan cuti berhasil diperbarui.']); } catch (ValidationException $e) { $firstError = collect($e->errors())->flatten()->first(); Inertia::flash('toast', ['type' => 'error', 'message' => $firstError ?? 'Terjadi kesalahan.']); } catch (\Exception $e) { Inertia::flash('toast', ['type' => 'error', 'message' => $e->getMessage()]); } return to_route('admin.sdm.leave-requests.index'); } public function destroy(LeaveRequest $leaveRequest): RedirectResponse { try { $this->service->delete($leaveRequest); Inertia::flash('toast', ['type' => 'success', 'message' => 'Permohonan cuti berhasil dihapus.']); } catch (\Exception $e) { Inertia::flash('toast', ['type' => 'error', 'message' => $e->getMessage()]); } return to_route('admin.sdm.leave-requests.index'); } public function approve(LeaveRequest $leaveRequest): RedirectResponse { try { $this->service->approve($leaveRequest); Inertia::flash('toast', ['type' => 'success', 'message' => 'Permohonan cuti berhasil disetujui.']); } catch (\Exception $e) { Inertia::flash('toast', ['type' => 'error', 'message' => $e->getMessage()]); } return to_route('admin.sdm.leave-requests.index'); } public function reject(LeaveRequest $leaveRequest): RedirectResponse { try { $this->service->reject($leaveRequest); Inertia::flash('toast', ['type' => 'success', 'message' => 'Permohonan cuti berhasil ditolak.']); } catch (\Exception $e) { Inertia::flash('toast', ['type' => 'error', 'message' => $e->getMessage()]); } return to_route('admin.sdm.leave-requests.index'); } }