$attributes */ public function get(Model $model, string $key, mixed $value, array $attributes): ?PartnerType { if ($value === null || $value === '') { return null; } $normalized = match (strtolower((string) $value)) { 'retailer' => PartnerType::Retailer->value, 'manufacturer' => PartnerType::Manufacturer->value, 'estate-agent', 'broker' => PartnerType::EstateAgent->value, 'customer' => PartnerType::Customer->value, default => $value, }; return PartnerType::tryFrom($normalized); } /** * @param array $attributes */ public function set(Model $model, string $key, mixed $value, array $attributes): ?string { if ($value === null) { return null; } return $value instanceof PartnerType ? $value->value : (string) $value; } }