For medium to large datasets, most practitioners will use a holdout set. A holdout set consists of data that your model has never seen before. If your model generalizes well on the holdout set, then presumably it will generalize equally well on live production data. If your model is used to make important decisions, you will often also do post-production monitoring of it to make sure that it continues to generalize well. As your model's generalizability decays over time, as if most often the case with real-world (e.g., financial) data, then you'll need to do a refit. Generalizability is often not static just like the real world is often not static.