a29f10a25f
Аутентифицированный sales-user грузится под pgsql (crm_app_user) до admin-db (приоритет middleware Authenticate > кастомного UseAdminConnection), и модель запоминает это подключение. SalesEarningsService лениво читал $u->assignments/ ->currentTariff → запрос уходил в crm_app_user (нет прав на sales_*) → 42501. Фикс: assignmentsOf()/tariffOf() — свежие запросы на текущем (admin) подключении, как уже делает SalesMetricsService. Регресс-тест: bogus-подключение на модели. Гейты: 18/18, Larastan 0. Тесты грант НЕ ловят (общий admin-PDO) — ловится живьём. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>