Use repositories and bind the controller to the contract - would recommend gives these few videos on Laracasts a watch - https://laracasts.com/search?q=repository
A controller should only house interaction for a single section like Admin\UsersController should contain only methods to interact with user domain sections.
So, if you go by this way, controllers will be maintainable.
Also, controllers should not have domain logic. There are repositories for that.
Sign in to participate in this thread!
We'd like to thank these amazing companies for supporting us