The issue is that Stripe collects the user’s payment immediately, I assumed they would not take money until the free trial (set within Stripe) had expired.
In order to keep issues separate I have created a separate page Applying a free trial to a Stripe plan. I have copied your comment over as a possible fix for the issue.