A missing datetime cast caused issues in the suspension service, where it tried calling Carbon methods on a string (which should have been a Carbon instance).
This commit adds a feature that allows users to request periods of inactivity from their managers. This is effectively known as a leave of absence.
The commit also introduces new permissions and migrations, therefore, you'll need to adapt your database according to these changes.
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.