У моєму випадку я створив нову таблицю в базі даних, можна назвати її, Domainsнаприклад.
Додайте всі конкретні функції, ті, які могли бути показані в деяких доменах, але не в решті, як стовпці для цієї таблиці, як біт булевих значень. Мовляв, у моєму випадку allow_multiple_bookings, use_company_card... що завгодно.
Потім подумайте про створення класу Domainта його відповідного сховища та просто запитайте ці значення у своєму коді, намагаючись максимально просунути цю логіку у ваш домен (вашу модель, сервіси додатків тощо).
Наприклад, я б не перевіряв метод контролера на те, RequestBookingчи може домен, який запитує бронювання, запитувати лише один або більше.
Натомість я роблю це, на RequestBookingValidatorServiceякому можна перевірити, чи минув час бронювання, користувач має активовану кредитну карту, ... або домен, з якого ця дія дозволена, може запитувати більше ніж одне бронювання (і тоді, якщо воно вже є будь-який).
Це додає зручності читабельності, оскільки ви перенесли це рішення до своїх служб додатків. Крім того, я вважаю, що коли мені потрібна нова функція, я можу використовувати міграції Laravel (або Symfony), щоб додати цю функцію до таблиці, і я могла навіть оновити її рядки (ваші домени) зі значеннями, які я хочу, на той самий комітет, який я кодував.