ActiveMerchant / ARB Code Advice

Would anyone with some experience at best practices with getting recurring billing working be willing to look at my code and perhaps point out how to improve and get my validations and objects going in the right order? What I have written works fine except for saving the user_id to the subscriptions table, but if something isn't entered right, it all blows up. I just can't wrap my head around the logic I guess for correctly running this stuff...

My Code:

Any guidance would be appreciated!