input = $input; } /** * @param string $attribute * @param mixed $value * @return bool */ public function passes($attribute, $value) { return $this->validCreditsPresent(); } /** * @return string */ public function message() { return ctrans('texts.insufficient_credit_balance'); } private function validCreditsPresent() :bool { //todo need to ensure the clients credits are here not random ones! if (array_key_exists('credits', $this->input) && is_array($this->input['credits']) && count($this->input['credits']) > 0) { $credit_collection = Credit::query()->whereIn('id', array_column($this->input['credits'], 'credit_id'))->count(); return $credit_collection == count($this->input['credits']); } return true; } }