public static function wrap(object $dto, array $data): object
    {
        foreach ($data as $key => $value) {
            $setter = 'set' . ucfirst($key);

            if (method_exists($dto, $setter)) {
                $dto->{$setter}($value);
            }
        }

        return $dto;
    }