So just noticed something, if a Client is closing the ticket from the portal, that ticket will lose the invoicing control aspects. So if the client will close the ticket, the admin side (technical, accounting, admin) will not be able to invoice the ticket once closed.
So i propose instead, if the ticket is set billable by the technician, then, hide the close ticket option on the portal side, so the client cannot close the ticket, leaving this task for the technician to close and bill as needed.
If ticket is set as not-billable, then sure, client should be able to close the ticket iself.
This just requires extra attention from the admin/technician when setting up the ticket's settings