This is how I get all my teams to work. The code goes in app/services folder though. Lib is for 3rd party stuff.
A project I worked on last year also implemented what they called 'use-cases' which were essentially model-view classes to extract and prepare data for the views.