user()->can('edit', $this->payment); } public function rules() { return [ 'invoices' => ['required','array','min:1',new PaymentAppliedValidAmount,new ValidCreditsPresentRule], 'documents' => 'mimes:png,ai,svg,jpeg,tiff,pdf,gif,psd,txt,doc,xls,ppt,xlsx,docx,pptx', ]; } protected function prepareForValidation() { $input = $this->all(); if(isset($input['client_id'])) unset($input['client_id']); if(isset($input['amount'])) unset($input['amount']); if(isset($input['type_id'])) unset($input['type_id']); if(isset($input['date'])) unset($input['date']); if(isset($input['transaction_reference'])) unset($input['transaction_reference']); if(isset($input['number'])) unset($input['number']); if (isset($input['invoices']) && is_array($input['invoices']) !== false) { foreach ($input['invoices'] as $key => $value) { $input['invoices'][$key]['invoice_id'] = $this->decodePrimaryKey($value['invoice_id']); } } $this->replace($input); } }