customerId)->pluck('id'))->get(); return new ProviderExportResult('carts', $addresses->map(fn (CartAddress $address) => [ 'type' => $address->type, 'first_name' => $address->first_name, 'last_name' => $address->last_name, 'line_one' => $address->line_one, 'city' => $address->city, 'postcode' => $address->postcode, 'contact_email' => $address->contact_email, 'contact_phone' => $address->contact_phone, ])->all()); } public function exportForUser(UserSubject $subject): ProviderExportResult { return new ProviderExportResult('carts', []); } public function eraseForCustomer(CustomerSubject $subject): ProviderErasureResult { CartAddress::whereIn('cart_id', Cart::where('customer_id', $subject->customerId)->pluck('id'))->delete(); return new ProviderErasureResult('carts', ErasureOutcome::Erased); } public function eraseForUser(UserSubject $subject): ProviderErasureResult { return new ProviderErasureResult('carts', ErasureOutcome::Skipped, 'Carts belong to Customer accounts, not individual users.'); } }