$this->service->paginated( ...$request->validatedWithDefaults(), filters: $request->only(['status']), ), 'filters' => $request->only(['status']), 'filterOptions' => [ 'statusOptions' => EmployeeAdvanceStatus::toSelect(), ], ]); } public function store(EmployeeAdvanceRequest $request): RedirectResponse { return $this->handleAction( fn () => $this->service->store($request->validated()), 'Kasbon berhasil ditambahkan.', 'admin.finance.employee-advances.index' ); } public function update(EmployeeAdvanceRequest $request, EmployeeAdvance $employeeAdvance): RedirectResponse { return $this->handleAction( fn () => $this->service->update($employeeAdvance, $request->validated()), 'Kasbon berhasil diperbarui.', 'admin.finance.employee-advances.index' ); } public function destroy(EmployeeAdvance $employeeAdvance): RedirectResponse { return $this->handleAction( fn () => $this->service->destroy($employeeAdvance), 'Kasbon berhasil dihapus.', 'admin.finance.employee-advances.index' ); } public function approve(EmployeeAdvance $employeeAdvance): RedirectResponse { return $this->handleAction( fn () => $this->service->approve($employeeAdvance), 'Kasbon berhasil disetujui.', 'admin.finance.employee-advances.index' ); } public function pay(EmployeeAdvancePaymentRequest $request, EmployeeAdvance $employeeAdvance): RedirectResponse { return $this->handleAction( fn () => $this->service->pay($employeeAdvance, $request->validated('amount')), 'Pembayaran kasbon berhasil.', 'admin.finance.employee-advances.index' ); } }