Refactor send_payment internals for retries