If you have self-referential columns you are going to have to name them something else, like `parent_id` and tell your model code about the discrepancy.
That is not gonna fly where I am from. Our external accountant, CPA type guy, will absolutely hound our ass, and charge his hourly rate doing it, for the invoice corresponding to the VISA card charge.