An unconfirmed payment in the chain can be reversed. A transaction spending that same previous output can send those same funds to an address owned by the sender and thus “reverse” or “cancel” the payment. It is not cancelled as such because you use another transaction to do so. You replace the payment with another payment. Note that RBF does not need to be signaled to do that as the miner can choose what to include in the block and a Full RBF is the now the default policy since the few last Bitcoin core releases.
Once the payment is confirmed, it can no longer be “voluntarily” reversed. In case of re-organization of blocks it could be reversed if that transaction becomes unconfirmed again (together with its descendants). This possibility decreases with the pass of time and the addition of blocks on top of it.
Take into account that this is a decentralized network and even if you try to replace it with another transaction paying more fees the miners are free to add the transaction they want in the blocs. You could see the case where you replace a transaction and still the first version gets mined. Or even after a re-org the transaction confirmed is a different one.