public static function take(AggregateIdInterface $aggregateId, AggregateRootInterface $aggregate, $version)
    {
        $dateTime = \DateTimeImmutable::createFromFormat('U.u', sprintf('%.6F', microtime(true)));

        return new static($aggregateId, $aggregate, $version, $dateTime);
    }