How to use the 'LsqFit.curve_fit'?

To fit the non-linear function with other data, I am trying to use the ‘LsqFit.curve_fit’ which was introduced by the following link: GitHub - JuliaNLSolvers/LsqFit.jl: Simple curve fitting in Julia

here is toy example:

using DelimitedFiles, Plots, Serialization, Transducers, Match, LsqFit, Dierckx
        #meta=deserialize("meta_SPS.bin");
	 meta=rand(55,27,150) #same type with real meta
        #Fv_NOC=deserialize("Fv_NOC.bin");
	 Fv_NOC=rand(200,3,55) #same type with real meta
        meta_start=395; meta_end=400; meta_div=trunc(Int,((meta_end-meta_start)*100)); #
        meta_cal=LinRange(meta_start,meta_end,meta_div);
            I_sharp=Array{Float64,2}(undef,150,27);
            I_broad=zeros(Float64, meta_div)
            obs_metaq=LinRange(394,402,205); obs_Iq=LinRange(100,1000,205);
            function OTrans(meta, meta_shift, Holn, Fv_NOC, p)
                Translation=p
                for brazera=1:27;
                    for J1=1:150
                        I_sharp[J1,brazera]=(1/(meta[J1,brazera,numb_v].-meta_shift[numb_v])^4)*Holn[J1,brazera]*exp(-2.2/Translation)
                        I_broad.+= I_sharp[J1,brazera].*exp.(-2 .*( meta_cal .-(meta[J1,brazera,numb_v])).^2)
                    end 
                end
                return I_broad
            end
            interpolation=Spline1D(obs_metaq, obs_Iq, k=1)
            Int_Iq=interpolation(meta_cal) #Finding query points
            p0=Float64.([300])
            fit=LsqFit.curve_fit(OTrans,meta_cal,Int_Iq,p0)

I made a code similar to the example introduced, but it didn’t work leaving an error like the following message:

ERROR: MethodError: no method matching OTrans(::LinRange{Float64, Int64}, ::Vector{Float64})
Closest candidates are:
  OTrans(::Any) at Toy_example.jl:48
Stacktrace:
 [1] (::LsqFit.var"#18#20"{typeof(OTrans), LinRange{Float64, Int64}, Vector{Float64}})(p::Vector{Float64})

The introduced of CurveFit.jl is not enough to me. How can I get this to work?