Can't fit dose response curve, could you tell me Why and How

Hello there !

I just have started programming and Julia these days, and I am trying fitting curve (dose response) by Optim.jl
But I can’t obtain better parameters and predictions (the all predictions have same value eventhough I use parameters that are calculated by optimize()) .
So, I would like you to tell me which is/are wrong and how to fix it.
I just have started programming and Julia

Here is my codes;

xdata = [0.1, 0.3, 1.0, 3.0, 10.0]
ydata = [138.48, 150.23, 192.14, 199.78, 233.76]
xbase = collect(range(minimum(xdata), maximum(xdata), 100))

@. DoseRes(x, p) = p[1] + ((p[2] - p[1]) / (1 + 10 ^ ((p[3] - x) * p[4])))

function cost(x, y, p)
    err = 0.0
    for i in 1:length(x)
        err = sum(abs2(y[i] - DoseRes(x[i], p...))) / (2 * length(x))
    end
    return err
end
result = optimize(p -> cost(xdata, ydata, p), [0.0, 0.0, 0.0, 0.0]) 
pbest = Optim.minimizer(result)

DoseRes(xbase, pbest)

result is like this;

100-element Vector{Float64}:
 233.75995328637563
 233.75995328637563
 233.75995328637563
 233.75995328637563
 233.75995328637563
 233.75995328637563
 233.75995328637563
 233.75995328637563
 233.75995328637563
 233.75995328637563
 233.75995328637563
 233.75995328637563
 233.75995328637563
   ⋮