userId === null && $this->tenantId === null) { throw new \InvalidArgumentException('An anonymization job requires either a user or tenant id.'); } $this->onQueue('default'); } public function handle(AccountAnonymizer $anonymizer): void { if ($this->userId) { $user = User::with('tenant')->find($this->userId); if (! $user || $user->tenant?->anonymized_at) { return; } $anonymizer->anonymize($user); return; } if ($this->tenantId) { $tenant = Tenant::with('user')->find($this->tenantId); if (! $tenant || $tenant->anonymized_at) { return; } if ($tenant->user) { $anonymizer->anonymize($tenant->user); } else { $anonymizer->anonymizeTenantOnly($tenant); } } } public function userId(): ?int { return $this->userId; } public function tenantId(): ?int { return $this->tenantId; } }