I am running through a scenario where I am required to give ReadOnly Permission to Requester when request is submitted.
Please suggest me what is the best possible solution for such scenarios.
Did you try using the Action Set "Run as owner" it will run as the person who has published the workflow and not as the person who started the workflow.
On the Action Set click -> Common -> Run as workflow owner
let me know if it helps.
You could always do this before the state machine or use some variable to set the value on the output of the state machine (i.e. who is the approval) and do this after the state machine? I am presuming it will be a little more actions than that would be required but surely it could be done?