I used the bevel after boolean addon, which ended up with the following. There were 1 or 2 faces which went along the entire loop, which didn't look right, so I deleted them and ended up with some holes:
To fill in these holes, I tried to select the edge loop and press Alt + F, then fixing the normals with Ctrl + N. But there are then tears and triangles appearing in the render:
How do I fill them in properly to avoid this from happening?
Here is the blend file if it helps.
Sorry if I'm missing something obvious, I'm quite new to blender.