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, ]); } Livewire::setUpdateRoute(function ($handle) { return Route::post('/livewire/update', $handle) ->middleware('client'); }); /* 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) { // @phpstan-ignore /** @phpstan-ignore-next-line **/ 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') { // @phpstan-ignore /** @phpstan-ignore-next-line **/ Mailer::setSymfonyTransport(app('mail.manager')->createSymfonyTransport([ 'transport' => 'mailgun', 'secret' => $secret, 'domain' => $domain, 'endpoint' => $endpoint, 'scheme' => config('services.mailgun.scheme'), ])); return $this; }); Mail::extend('brevo', function () { return (new BrevoTransportFactory)->create( new Dsn( 'brevo+api', 'default', config('services.brevo.key') ) ); }); // Mailer::macro('brevo_config', function (string $key) { // // @phpstan-ignore /** @phpstan-ignore-next-line **/ // Mail::setSymfonyTransport((new BrevoTransportFactory)->create( // new Dsn( // 'brevo+api', // 'default', // $key // ) // )); // return $this; // }); } public function register(): void { if (Ninja::isHosted()) { $this->app->register(\App\Providers\BroadcastServiceProvider::class); } } }