/** * Create the subscription on Stripe. * * @param \Illuminate\Http\Request $request * @param \Illuminate\Contracts\Auth\Authenticatable $user * @return void */ public function createSubscriptionOnStripe(Request $request, $user) { $plan = Spark::plans()->find($request->plan); $subscription = $user->newSubscription('main', $plan->id); if ($plan->hasTrial() && !$user->stripe_id) { $subscription->trialDays($plan->trialDays); } if ($request->coupon) { $subscription->withCoupon($request->coupon); } if (Spark::$createSubscriptionsWith) { $this->callCustomUpdater(Spark::$createSubscriptionsWith, $request, [$user, $subscription, $stripeCustomer]); } else { $subscription->create($request->stripe_token); } }