1. Controlling transition from Pending to Approved
You can set the permissions as such for a non-admin user
That way that user will be able to save a Purchase Order but when they go to Verify it, Megaventory will ask them for a location. They are not able to write at that location so they will not be able to Verify.
Therefore, the Verify step will have to be completed with someone who has more permissions, such as an admin. Note that for the admin to do that they will have to take over that order from the less privileged user.
2. Controlling transition from Approved to Received/Invoiced
You can take from a user the permission to access Transaction and Invoice Documents like this:
That way they will be able to Approve (see above case) but they will not be able to increase stock or invoice:
Again, a more privileged user will have to do the Receive step.
3. Controlling transition from Received/Invoiced to Closed
This is not possible.
The equivalent points are valid for selling rather than purchasing.
Note that whenever you take permissions from a user the corresponding action has to be completed by someone else. As such, although security and error-checking goes up, delays and complexity increase. So that is all a trade-off you may want to consider.