# Apply Benders decomposition approach in CPLEX with python while using docplex class

I am new to cplex with python. I want to solve a problem using the Benders decomposition approach. Where I want to use UserCutCallback and LazyConstraintCallback. I am writing code in script format (which means I am not defining class, object, etc.). Would I be able to code my problem in that format while using UserCutCallback and LazyConstraintCallback? If yes, how can I use UserCutCallback and LazyConstraintCallback? My problem is as follows:

# Defining Model

my_bdrex_OP=Model('My Original Model',log_output=True)


# Defining Variables

x_1=my_bdrex_OP.integer_var(name='x_1', lb=0)
x_2=my_bdrex_OP.integer_var(name='x_2', lb=0)
y_1=my_bdrex_OP.continuous_var(name='y_1', lb=0)
y_2=my_bdrex_OP.continuous_var(name='y_2', lb=0)
y_3=my_bdrex_OP.continuous_var(name='y_3', lb=0)


my_bdrex_OP.add_constraint(2*x_1+4*x_2+4*y_1-2*y_2+3*y_3<=12)


# Defining Objective function

objective_OP=4*x_1+7*x_2+2*y_1-3*y_2+y_3
my_bdrex_OP.maximize(objective_OP)


# Solving

my_bdrex_OP.print_information()
print(my_bdrex_OP.export_as_lp_string())


I am solving the above problem by using the Benders strategy:

my_bdrex_OP.parameters.benders.strategy = 3
my_bdrex_OP.solve()
my_bdrex_OP.print_solution()


And I successfully got the solution.

But I want to solve it by using the UserCutCallback and LazyConstraintCallback method. I request to the community please help to understand the use of UserCutCallback and LazyConstraintCallback to solve the problem in the Benders decomposition technique.