Как происходит создание группирования пользователей на сайте на программном уровне?
Вот например во всяких CMS есть функционал создания групп пользователей, типа редактор может это, модератор это, и собственно вопрос вот в чем, как это деается на програмном уровне?
Есть может какие то best practice?
Есть много подходов, но наиболее распространенный Role Based Access Control (RBAC).
Есть отдельная библиотека для реализации phprbac.net либо искать реализацию в составе используемого фреймворка.