With out knowing your scope completely, I recommend: each controller just stick to restful as much as possible. Sometimes it doesn't make sense too, be if you don't give it a minute to thing about it.
Secondly a controller in mvc by definition is to direct required data for a view or receive request data. A middle layer to direct flow. (Extremely basic).
So having enough controllers to manage this is appropriate. I usually try to set up as modular as I can. So for example the proverbial blog. I set models under app/blog/models. Controllers under app/http/controllers/blog. Views under a blog folder in views. On larger apps I'll use traits to link relationships together. So in a blog I'll set up an user trait under blog namespace and import into the user model. It has all the user/author relationships to any required blog models (article, comments etc).
Braintree and stripe might be overkill as Braintree allows c/c and PayPal.