Start here. This is the direct spoken answer to practice first.
Overview
Validators work best for facts available in the value being constructed, not for the whole application workflow.
A field validator should normalize or validate one field, and a model validator can enforce consistency among fields in the same model. Examples include trimming a code, checking a bounded format, or requiring an end time after a start time. I keep database lookups, external calls, authorization, and workflow decisions out of Pydantic model construction. Those rules need explicit dependencies, current state, and application-level error handling rather than an apparently pure data model.