Why does calling super in PostSerializer#raw cause a 500 error while calling object.raw works?

Thanks for the explanation!
You’re right — reopening ::PostSerializer was the issue. After switching to prepend, everything works as expected.

I’m now using this module:

module PostSerializerExtension
  def raw
    if scope.can_edit?(object)
      super
    else
      object.raw&.truncate(300)
    end
  end
end

reloadable_patch do
  require_dependency "post_serializer"
  ::PostSerializer.prepend(::PostSerializerExtension)
end

This works perfectly on my side. Thanks again for the guidance!