Use create_payment everywhere

One-sentence description

Use create_payment (from #1010 (closed) ) everywhere where we use payments

Why?

Prevent code duplication

Current implementation

Shitty, chaotic, anarchy, tears

Suggested implementation

Make models Payable (implement the interface / abstract class from #1010 (closed)) and use create_payment as the only way to interact with / create payments.

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information