Laravel Eloquent models are not `Macroable` by default, if you want to add a relationship dynamically on a model in another module or package, you need to macro through the `Builder` instead of the `Model`.
We have a couple of legacy projects with user records containing passwords encrypted using SHA-1, when moving these projects over to Laravel, we want to attempt to authenticate using Eloquent first and SHA-1 next.
I write everything inside of packages, install using composer and use Service Providers to hook things up. When you do things this way, you make it very easy to upgrade. However, you lose some of the magical, inherently solved problems.
Have you ever wanted to break away from the resources folder in Laravel and have different template themes for your frontend? The key to this is actually very simple. Let me show you.