Hi, I have a Leave Request list for the user to apply for leave.

I have 2 questions regarding the approval workflow.
1. After the user creates a new item then it will trigger the approval workflow, if suddenly they change their mind and want to cancel the request, they can click the Cancel request button but then the approval is still there in Outlook. Then how to make the approval invalid or cancel flow run to ensure even if the approver approves the request then nothing would happen as the user already cancel.
2. After the user creates the requests, they can edit the item and after they finish editing, they need to click the Resend Approval button to trigger the flow that will resend the approval with the new edited request. The problem is, that the original request is still there in Outlook and if the approver mistakenly clicks Approve then the request is still being Approved. Even though it doesn't reflect the approval of the original request in SharePoint but it still an issue because it sends emails that say the request is approved twice; once for the original and second for the edited.
How to fix this issue? I don't have dataverse so I can't use that.
Thank you.