app->bind(EstimatePdfDataProvider::class, EstimateService::class); $this->app->bind(InvoicePdfDataProvider::class, InvoiceService::class); $this->app->bind(DocumentExchangeRateRecorder::class, MoneyDocumentExchangeRateRecorder::class); $this->app->bind(EstimateEmailSender::class, LaravelEstimateEmailSender::class); $this->app->bind(InvoiceEmailSender::class, LaravelInvoiceEmailSender::class); } public function boot(): void { $this->commands([ CheckEstimateStatus::class, CheckInvoiceStatus::class, ]); Gate::policy(Estimate::class, EstimatePolicy::class); Gate::policy(Invoice::class, InvoicePolicy::class); Gate::policy(RecurringInvoice::class, RecurringInvoicePolicy::class); Gate::define('send invoice', [InvoicePolicy::class, 'send']); Gate::define('create credit note', [CreditNotePolicy::class, 'create']); Gate::define('send estimate', [EstimatePolicy::class, 'send']); Gate::define('delete multiple invoices', [InvoicePolicy::class, 'deleteMultiple']); Gate::define('delete multiple estimates', [EstimatePolicy::class, 'deleteMultiple']); Gate::define('delete multiple recurring invoices', [RecurringInvoicePolicy::class, 'deleteMultiple']); } }