user(); if ($user->isAdmin()) { StripeUpdatePaymentMethods::dispatch($user->company()); return response()->json(['message' => 'Processing'], 200); } return response()->json(['message' => 'Unauthorized'], 403); } public function import() { /** @var \App\Models\User $user */ $user = auth()->user(); if ($user->isAdmin()) { ImportStripeCustomers::dispatch($user->company()); return response()->json(['message' => 'Processing'], 200); } return response()->json(['message' => 'Unauthorized'], 403); } public function verify() { /** @var \App\Models\User $user */ $user = auth()->user(); if ($user->isAdmin()) { MultiDB::findAndSetDbByCompanyKey($user->company()->company_key); /** @var \App\Models\CompanyGateway $company_gateway */ $company_gateway = CompanyGateway::where('company_id', $user->company()->id) ->where('is_deleted', 0) ->whereIn('gateway_key', $this->stripe_keys) ->first(); return $company_gateway->driver(new Client())->verifyConnect(); } return response()->json(['message' => 'Unauthorized'], 403); } public function disconnect(string $company_gateway_id) { /** @var \App\Models\User $user */ $user = auth()->user(); /** @var \App\Models\CompanyGateway $company_gateway */ $company_gateway = CompanyGateway::where('company_id', $user->company()->id) ->where('id', $this->decodePrimaryKey($company_gateway_id)) ->whereIn('gateway_key', $this->stripe_keys) ->firstOrFail(); return $company_gateway->driver()->disconnect(); } }