environment('local')) { // 콘솔/큐 등 non-HTTP 컨텍스트 보호 if (function_exists('request') && request() && request()->is('api/*')) { DB::enableQueryLog(); } } } /** * Bootstrap any application services. */ public function boot(): void { // Morph Map: 다형성 관계 모델 등록 (enforceMorphMap 사용 시 필수) Relation::enforceMorphMap([ 'user' => User::class, 'post' => Post::class, ]); // DB::enableQueryLog(); Builder::macro('debug', function ($debug = null) { if (is_null($debug) && app()->environment('local')) { $debug = true; } if ($debug) { \DB::enableQueryLog(); } return $this; }); // 메뉴 생성/수정/삭제 ↔ 권한 자동 동기화 Menu::observe(MenuObserver::class); // 테넌트 생성 시 자동 실행 Tenant::observe(TenantObserver::class); } }