The Newton's method in the mean of Interval

I have to write the Newton’s method in the point which is the mean of Interval. and in ‘While’ loop it could be while the function(point)>eps.

point = Mean[inter];
step[f_,inter_] := Module[{p:=Mean@First@(List @@ inter)},
IntervalIntersection[inter, p - (f[p])/(f'[p])]]
  newton[f_, inter0_, eps_] := Module[{iter = 0},
  Print["X1 = ", N@Mean@First@(List @@
  NestWhile[(++iter; step[f, #]) &, inter0, 
     Abs[f[p]] > eps & ])];
     Print["iter=", iter];
     Print[ "loop counts: ", iter, ". ", inter,"; p=",p=Mean@First@(List @@ inter), "; f[p]=",f[p],"; f'[p]=",f'[p]]];
f[x_] := x*x - 8*x + 7;
inter := Interval[{5,9}];
newton[f, inter, 0.00001];

I tried to do it, but it doesn’t work correctly. Please, help me!

Clear["Global`*"]
(*Newton's Method for solving equation f(x)=0.,I do not understand \
something like that you want to get?!,
I'm nubie in Wolfram Mathematica - but experts don't answer you,
See if code can help you with something. Excuse me for my broken \
English*)

(*function f(x)*)
f[x_] := x - E^(-x^2);
(*Interval*)
interval = {0, 2};
(*desired accuracy*)
desAcc = 0.00001`;


(*Initial x - Mean of interval you chose*)
xInitial = Mean[interval];


(*Newton's Method*)
newton[f_, xInitial_, desAcc_] :=
 Module[
  {xNext = 0, xNow = xInitial, result = desAcc, iter = 0},
  While[ result >= desAcc,
    iter++;
    
    xNext = N[xNow - (f[xNow]/f'[xNow])];
    result = Abs[xNext - xNow];
    
    If[ result < desAcc,
     Print[
      "Solve of equation f(x)=0 is for x = ",
      xNext, "."];
     Print["With accuracy ",
      desAcc, "."];
     Print["In interval ",
      interval, "."];
     Print["Loop counts: ",
      iter, "."],
     xNow = xNext
     ];
    ];
  ]

(*Newton's Method*)
newton[f, xInitial, desAcc];

I use this for above code.

https://www.math.ucdavis.edu/~thomases/W11_16C1_lec_3_11_11.pdf

Abs[f[p]] > eps &]

Look this. I think you must verify

Abs[f[p]/f'[p]]> eps &]
Module[{p := Mean@First@(List @@ inter)},

Do you understand that p is local virable for step[] function? You don’t able to reach it from newton[] function - I think.

IntervalIntersection[inter, p - (f[p])/(f'[p])]]

IntervalIntersection[] must have arguments from Interval type - what you trying to do?!

NestWhile[(++iter; step[f, #]) &, inter0, Abs[f[p]] > eps &]

If you explain how this function should work and what exactly you want to do - I might help you. I’m not very familiar with these symbols # and & yet.