How to impose ordered constraints to model variables

Hi, everyone.

Lately, I have been learning Bayesian inference with Julia and Turing and trying to implement IRT(Item response model; logistic regression with latent variables).
Today, I ask a question related to ordered variables in Turing model.

Now, I want to model polytomous data using Graded Response Model (ordered logistic model with latent variables), which models categorical variables with some ordered threshold parameters.

I referenced a link below,

then wrote the model as described below.

@model graded(data) = begin 
	N, J = size(data)
    θ = Vector{Real}(undef, N)
	α = Vector{Real}(undef, J)
	β = Vector{Vector}(undef, J)
	β_diff = Vector{Vector}(undef, J)
	for j in 1:J
		cat = sort(unique(skipmissing(data[:,j])))
		K = length(cat)
		α[j] ~ LogNormal(0, 2)
		# Assign normal prior with ordered constraints
		β[j] = Vector{Real}(undef, K-1)
		β_diff[j] = Vector{Real}(undef, length(cat) - 2)
		for k in 1:K - 1
		    if k == 1
		        β[j][k] ~ Normal(-3, 1)
		        β_diff[j][k-1] ~ Normal(0, 1)
		        β[j][k] = β[j][k - 1] + exp(β_diff[j][k-1])
	# assign distributon to each element
	for i in 1:N
		θ[i] ~ Normal(0, 1)
   	for i in 1:N
		for j in 1:J
			data[i,j] ~ OrderedLogistic(α[j]*θ[i], β[j])

This model seems to work well judging from simulation data, however, the prior settings about β and β_diff are not so intuitive that customizing prior is some tricky.

So, I come up with to use truncated distributions as follows.

		β[j] = Vector{Real}(undef, K-1)
		bounds = [-Inf; sort(rand(Normal(0, 2), K-2)); Inf]
		for k in 1:K-1
			β[j][k] ~ truncated(Normal(0, 2), bounds[k], bounds[k+1])

But this model returns the error below.

ERROR: cutpoints are not sorted

Do you know the more sophisticated idea to handle ordered categorical variables in Turing?