Is there a standard method for showing that a functor $F:\mathcal{C}\to\mathcal{D}$ is a fibration, aside from constructing a cleavage?

In the proof of the Grothendieck construction, the fibration we obtain from an indexed category $\Psi:\mathcal{B}^{op}\to\mathfrak{Cat}$ is automatically cloven since we're constructing a specific Cartesian arrow $(u,1_{\Psi(u)(Y)})$ for each arrow $u:I\to J\in\mathcal{B}$ and object $(J,Y)\in\int\Psi$ above $J$.

Every time I want to show that a functor is a fibration, I end up constructing Cartesian arrows parametrized as above and thusly showing that it's a cloven fibration -- is this by necessity?

Any method of showing that a functor is a fibration without choosing a cleavage is welcome, but in particular something similar to the adjoint functor theorem for fibrations would be cool. That is, a statement along the lines of

If $F:\mathcal{C}\to\mathcal{D}$ is a functor and $\mathcal{C}$ is blah and $\mathcal{D}$ is bloop and $F$ preserves/reflects blorps then $F$ is a fibration.

structure: there is a pullback-forming operation which takes a two arrows with a common codomain and gives a specific pullback diagram for them. Asproperty: for any two arrows with a common codomain thereexistsa diagram which is a pullback of these arrows. If you use the latter, the codomain fibration twon't be cloven (unless you use the axiom of choice to can pass from property to structure). $\endgroup$ – Andrej Bauer Jan 30 at 6:5513more comments