Я делал мультитенантный SaaS на Laravel: несколько компаний на одном инстансе, свои пользователи, свои данные, свой тариф. Не «один аккаунт с галочкой», а изоляция запросов и биллинг.
Я завёл tenant_id на моделях и middleware: Eloquent не отдаёт чужие записи даже прямым URL. Политики и Gates режут роли внутри тенанта (владелец / админ / сотрудник / гость). Инвайты, смена плана, блокировка фич при просрочке.
Я подключил подписки и лимиты (места, документы в месяц), вебхуки оплаты, dunning. Тяжёлые отчёты — Jobs + Horizon, файл в S3, ссылка в кабинет. Супервизор видит тенантов, без «посидеть в чужой базе» без аудита.
Стек: Laravel, PHP 8, PostgreSQL, Redis, Horizon, Sanctum, Docker. NDA: продукт не публикуется.