My team generally uses Backlog Refinement session to finalize the requirements of the User story ( between BA and the P.O ) rather than enriching the requirements on the User story. Is this a correct practice to be followed ?
It might be better for the Developers and the Product Owner to refine work so it is ready for Sprint Planning, rather than to try and "finalize" it.
It's possible that a B.A. may be one of the Developers. But if the conversations the story represents have not yet finished with everyone, and the corresponding work delivered, it won't be final.
Scrum doesn't prescribe practices. It is up to each individual Scrum Team to determine how to implement the framework and whether they require any complementary practices.
Therefore if your PBR helps to create transparency and clarity then crack on. At the moment though, it sounds like it's just getting transparency between the PO and BA...rather than the whole Scrum Team.
I agree with @Ian Mitchell. because this is how I'm coaching my team for.
During the spring my team will be very busy working on their sprint backlog, so during the refinement meeting we focus on creating and making the product backlog items more transparent so it can be ready for the next sprint.