I’ll say list out all the different roles and write out the access you want, then list our the different Discourse user states and the access they give – you can also leverage category and group permissions, then do a matchup.
You should definitely get something.
I say this because Discourse is a tool, and a tool is only as good as how it is used. You need to use Discourse and customise it to your exact needs.