I'm fairly sure you can achieve this via Out Of the Box Content Approvals : Managing approval sequences (optimizely.com)
Also highly recommend using Advanced Reviews Add-on for better collaboration and reviewing process
I'll quickly mock this up on Alloy
Access Rights - WebEditors can not Publish, WebAdmins Can
Just adding to the conversation you asked in Slack about creating custom Approval Flows and details to this can be found here : Work with content approvals (optimizely.com)
I want to make my content approval below the order.
Here, when a NormalUser makes the content it goes to the 1st Line manager.
Then he'll review it. If he approves then it goes to the 2nd Line manager. If he rejects then the post remains not to approve & freezes.
So, the 1st line manager and 2nd line manager did the same approach as well as admin. For Final approval by the admin will publish the content.
How to achieve this?
Also, I want to see the admin where the content is now(state) and who's holding the content.