invoice = $invoice; $this->client = $invoice->client; } public function run() { if(!$invoice->isPayable()) return $invoice; } private function getGateway($amount) { $gateway_tokens = $this->client->gateway_tokens->orderBy('is_default', 'DESC'); $billing_gateway_token = null; $gateway_tokens->filter(function ($token) use ($amount){ if(isset($token->gateway->fees_and_limits)) $fees_and_limits = $token->gateway->fees_and_limits->{"1"}; else return true; if ((property_exists($fees_and_limits, 'min_limit')) && $fees_and_limits->min_limit !== null && $amount < $fees_and_limits->min_limit) return false; if ((property_exists($fees_and_limits, 'max_limit')) && $fees_and_limits->max_limit !== null && $amount > $fees_and_limits->min_limit) return false; return true; })->all()->first(); } }