First agent should close the ticket then user can close it
Tickets are Open or Closed. You can add additional status is you want, but only an Agent can close a ticket.
This sounds exactly like your other post: https://forum.osticket.com/d/97044-how-should-user-gets-permission