[TASK] consolidate transaction logic

Major refactor of the way transactions are submitted
`isTransactionPaymentOrOrder` doesn't seem generic enough. We may reuse this for other transaction types