sql, // [ // 'bindings' => $query->bindings, // 'time' => $query->time // ] // ); // }); // Model::preventLazyLoading( // !$this->app->isProduction() // ); /* Defines the name used in polymorphic tables */ Relation::morphMap([ 'invoices' => Invoice::class, 'proposals' => Proposal::class, ]); Blade::if('env', function ($environment) { return config('ninja.environment') === $environment; }); /* Sets default varchar length */ Schema::defaultStringLength(191); /* Handles setting the correct database with livewire classes */ if (Ninja::isHosted()) { Livewire::addPersistentMiddleware([ SetDomainNameDb::class, ]); } /* Ensure we don't have stale state in jobs */ Queue::before(function (JobProcessing $event) { App::forgetInstance('truthsource'); }); /* Always init a new instance everytime the container boots */ app()->instance(TruthSource::class, new TruthSource()); /* Extension for custom mailers */ Mail::extend('gmail', function () { return new GmailTransport(); }); Mail::extend('office365', function () { return new Office365MailTransport(); }); Mailer::macro('postmark_config', function (string $postmark_key) { Mailer::setSymfonyTransport(app('mail.manager')->createSymfonyTransport([ 'transport' => 'postmark', 'token' => $postmark_key ])); return $this; }); Mailer::macro('mailgun_config', function (string $secret, string $domain, string $endpoint = 'api.mailgun.net') { Mailer::setSymfonyTransport(app('mail.manager')->createSymfonyTransport([ 'transport' => 'mailgun', 'secret' => $secret, 'domain' => $domain, 'endpoint' => $endpoint, 'scheme' => config('services.mailgun.scheme'), ])); return $this; }); /* Extension for custom mailers */ /* Convenience helper for testing s*/ ParallelTesting::setUpTestDatabase(function ($database, $token) { Artisan::call('db:seed'); }); } public function register(): void { $this->app->register(\App\Providers\BroadcastServiceProvider::class); } }