The rule is, whatever you show to the Googlebot, you must show to the traffic that Google sends you. You can't show something different, such as a paywall that blocks content from people but isn't there for the Googlebot.
If visitors coming from Google do not see the content promised in the search results, the same content that the Googlebot saw, and they complain, a site could be slapped by Google, for cloaking...and delisted.
That doesn't mean that paywalls can't be used on other traffic, just that if the Googlebot doesn't see a paywall, neither can anyone clicking a link from their search engine, to your site.