Override is best way extend functionalities of core system. You can create your own model, create migrations for same, In your model you can add your columns of table & override system's model & change then according to need.
To do it - first of all, create your own package, after this create model and override it according to need, then create repository & controllers accordingly.
If you face any issues while implementing it, write to us.
We are updating our docs for make it more simple & convenient.