diff --git a/src/SubscriptionBuilder.php b/src/SubscriptionBuilder.php
index <HASH>..<HASH> 100644
--- a/src/SubscriptionBuilder.php
+++ b/src/SubscriptionBuilder.php
@@ -310,6 +310,25 @@ class SubscriptionBuilder
             $this->owner->stripeOptions()
         );
 
+        $subscription = $this->createSubscription($stripeSubscription);
+
+        if ($subscription->hasIncompletePayment()) {
+            (new Payment(
+                $stripeSubscription->latest_invoice->payment_intent
+            ))->validate();
+        }
+
+        return $subscription;
+    }
+
+    /**
+     * Create the Eloquent Subscription.
+     *
+     * @param  \Stripe\Subscription  $stripeSubscription
+     * @return \Laravel\Cashier\Subscription
+     */
+    protected function createSubscription(StripeSubscription $stripeSubscription)
+    {
         /** @var \Stripe\SubscriptionItem $firstItem */
         $firstItem = $stripeSubscription->items->first();
         $isSinglePlan = $stripeSubscription->items->count() === 1;
@@ -334,12 +353,6 @@ class SubscriptionBuilder
             ]);
         }
 
-        if ($subscription->hasIncompletePayment()) {
-            (new Payment(
-                $stripeSubscription->latest_invoice->payment_intent
-            ))->validate();
-        }
-
         return $subscription;
     }
Extract creating subscription to a separate method (#<I>)