This commit moves most controller logic onto Services. Services are part of the Service-Repository pattern. The models act as repositories.
Services are easily testable and are needed for the upcoming API, in order to avoid duplicated code and to maintain a single source of "truth".
The User, Vacancy and Vote controllers still need their logic moved onto services.
Gate Auth arguments were missing for TeamFile and Team controllers.
This means that Gate has no idea where to look for policies, meaning that
the ability passed is perceived literally, causing an Unauthorized error.
Adding the Model with which to authorize the request solved the error since
Gate now knows which policy to look in for permission logic.