Change return values

Use Carbon by default, and allow Eloquent array (but should be changed
to the real models)
Work on static references

Reference the child class (your actual model), instead of the base
model, using static (same behaviour as $this).