'array', 'attachments' => 'array', 'renewal_services' => 'array', 'total_recipients' => 'integer', 'sent_count' => 'integer', 'failed_count' => 'integer', 'completed_at' => 'datetime', ]; protected static function booted(): void { static::creating(function (self $campaign) { $campaign->uuid ??= (string) Str::uuid(); }); } public function isMarketing(): bool { return $this->template === null || $this->template->isMarketing(); } public function logs() { return $this->hasMany(Mail::class, 'campaign_id'); } public function template() { return $this->belongsTo(Template::class, 'template_id'); } public function creator() { return $this->belongsTo(User::class, 'created_by'); } }