I want to hide the edit button when a invoice\' state is paid, just like the image below.
Add a Record Rule for account.invoice object with Read permission alone. And a domain filter as [('state','=','paid')].
[('state','=','paid')]