java.lang.IllegalArgumentException: Already registered a copy: SqmBasicValuedSimplePath

Thanks for your reply so much! I checked topics again and create working method:
I hope it helps someone.

	public Long count() {
		var countBuilder = (HibernateCriteriaBuilder) builder; //CriteriaBuilder from class level
		var countQuery = countBuilder.createQuery(Long.class);
		var subQuery = countQuery.subquery(Tuple.class);

		var sqmSubQuery = (SqmSubQuery<Tuple>) subQuery;
		var sqmOriginalQuery = (SqmSelectStatement) query; // CriteriaQuery from class level
		var sqmOriginalQuerySpec = sqmOriginalQuery.getQuerySpec();
		var sqmSubQuerySpec = sqmOriginalQuerySpec.copy(SqmCopyContext.simpleContext());

		sqmSubQuery.setQueryPart(sqmSubQuerySpec);
		Root<?> subQuerySelectRoot = subQuery.getRoots().iterator().next();
		sqmSubQuery.multiselect(subQuerySelectRoot.get("id").alias("id"));

		countQuery.multiselect(countBuilder.count(countBuilder.literal(1)));
		countQuery.from(sqmSubQuery.distinct(true).orderBy(builder.asc(subQuerySelectRoot.get("id"))));

		return entityManager.createQuery(countQuery).getSingleResult();
	}