"When my free trial ends, it says that my user's account has expired even though they have added payment details during the 14 days."
A common reason for the "expired" message appearing is because you created the free trials in Stripe instead of Memberstack.
Creating free trials in Stripe causes a disconnect and essentially breaks Memberstack.
Here's how you can re-activate those "expired" customers:
In Stripe, search the email address of an expired member
Scroll down to Subscriptions
Scroll to metadata
Click 'edit metadata'
Enter something like: ms_update = 1 (this doesn't matter and wont affect anything in MS)
Search that customer in your Memberstack dashboard and check the customer's status has updated to 'active'
By editing the metadata, you will have triggered Memberstack to update the subscription 🎉