Remove model direct access.
In the current code, the models are accessed as normal eloquent models, this should be changed.
In the #3 (closed) task, there have been interfaces added for each model type, they should all be implemented - when #3 (closed) is done - but the current code still accesses all properties through their __get magic methods due to eloquent.
Change the access to use getters and setters from the contracts instead of the property fields.