registerIlluminateMailer(); } public function boot() { } protected function registerIlluminateMailer() { $this->app->singleton('mail.manager', function($app) { return new GmailTransportManager($app); }); // $this->app->bind('mail.manager', function($app) { // return new GmailTransportManager($app); // }); $this->app->bind('mailer', function ($app) { return $app->make('mail.manager')->mailer(); }); $this->app['mail.manager']->extend('postmark', function () { return new PostmarkTransport( $this->guzzle(config('postmark.guzzle', [])), config('postmark.secret') ); }); } protected function guzzle(array $config): HttpClient { return new HttpClient(array_merge($config, [ 'base_uri' => empty($config['base_uri']) ? 'https://api.postmarkapp.com' : $config['base_uri'] ])); } public function provides() { return [ 'mail.manager', 'mailer' ]; } }