only(['status']), fn ($v) => $v !== null); return $this->successResponse( payload: CompanyAccountPayableResource::collection($this->service->list($filters)), ); } public function store(StoreCompanyPayableRequest $request): JsonResponse { $item = $this->service->createManual($request->validated()); return $this->successResponse( payload: new CompanyAccountPayableResource($item), message: __('messages.created'), code: 201, ); } public function settle(SettlePayableRequest $request, int $id): JsonResponse { $payable = $this->service->findById($id); if (!$payable) { return $this->errorResponse(message: 'Conta a pagar não encontrada', code: 404); } $item = $this->service->settle($payable, $request->validated()); return $this->successResponse( payload: new CompanyAccountPayableResource($item), message: 'Baixa realizada com sucesso', ); } public function reopen(int $id): JsonResponse { $payable = $this->service->findById($id); if (!$payable) { return $this->errorResponse(message: 'Conta a pagar não encontrada', code: 404); } $item = $this->service->reopen($payable); return $this->successResponse( payload: new CompanyAccountPayableResource($item), message: 'Conta reaberta', ); } }