def METHOD_NAME(self, estimator, X_train, y_train, X_test, y_test, cat_cols, early_stopping_rounds):
    estimator.fit(
        X_train,
        y_train,
        eval_set=[(X_test, y_test)],
        early_stopping_rounds=early_stopping_rounds
    )
    self.best_estimator = estimator
    self.best_iteration = estimator.best_iteration_
    self.best_params = estimator.get_params()
    self.best_score = estimator.best_score_