i have problems sending email when implements ShouldQueue, if i not implement ShouldQueue the emails is sended, but not when use ShouldQueue, this is my MailNotification
<?php
namespace AppMail;
use IlluminateBusQueueable;
use IlluminateContractsQueueShouldQueue;
use IlluminateMailMailable;
use IlluminateQueueSerializesModels;
use AppModelsCompanyEntrustRegistration;
class EntrustRegistrationNotification extends Mailable implements ShouldQueue
{
use Queueable, SerializesModels;
public EntrustRegistration $registration;
public string $action;
/**
* Create a new message instance.
*/
public function __construct(EntrustRegistration $registration, string $action)
{
$this->registration = $registration;
$this->action = $action;
}
public function build()
{
return $this->view('emails.entrust_registration_notification')
->with([
'registration' => $this->registration,
'action' => $this->action,
])
->subject("Se ha {$this->action} una encomienda");
}
}
and i have this model
<?php
namespace AppModelsCompany;
use AppMailEntrustRegistrationNotification;
use AppModelsCompany;
use FilamentModelsContractsHasTenants;
use FilamentPanel;
use IlluminateContractsDatabaseEloquentBuilder;
use IlluminateDatabaseEloquentFactoriesHasFactory;
use IlluminateDatabaseEloquentModel;
use IlluminateDatabaseEloquentRelationsBelongsTo;
use IlluminateSupportCollection;
use IlluminateSupportFacadesMail;
class EntrustRegistration extends Model implements HasTenants
{
use HasFactory;
protected $fillable = [
'nombreca',
'tipoencomienda',
'estado',
'coowner_id',
'company_id',
];
protected static function booted(): void
{
// Event for Send Emails
self::created(function ($registration) {
$registration->load('coowners.guest');
Mail::to($registration->coowners->guest->email)
->queue(new EntrustRegistrationNotification($registration, 'recibido'));
});
self::updated(function ($registration) {
$registration->load('coowners.guest');
Mail::to($registration->coowners->guest->email)
->queue(new EntrustRegistrationNotification($registration, 'actualizado'));
});
}
public function companies(): BelongsTo
{
return $this->belongsTo(Company::class, 'company_id');
}
public function getTenants(Panel $panel): array|Collection
{
return $this->companies;
}
public function canAccessTenant(Model $tenant): bool
{
return $this->companies->contains($tenant);
}
public function coowners(): BelongsTo
{
return $this->belongsTo(Coowner::class, 'coowner_id');
}
}
For some reason when using implements ShouldQueue it does not take the email of the coowners->guest relationship that exists in my coowner model, this is my relationship in the coowner model
public function guest(): BelongsTo
{
$tenant = Filament::getTenant(); // Obtener el inquilino actual
return $this->belongsTo(Guest::class, 'guest_id')->whereHas('companies', function ($query) use ($tenant) {
$query->where('id', $tenant->id); // Filtrar los huéspedes relacionados con el inquilino actual
});
}
i try adding this line but is not working
$registration->load('coowners.guest');
i can-t understand what going on now, i have my .env with QUEUE_CONNECTION=database