Authentication and Devise with broadcasts

I had a situation whereby (taking the tutorial example) when the current user created a new message I wanted the appended message to render for them with edit / delete actions but not for other users.

The solution I went with was to use a turbo stream to target one div on the current users rendered page and broadcasts to target a different one. e.g.

<% if current_user %>
  <%= turbo_frame_tag "new_message", src: new_room_message_path(@room), target: "_top" %>
  <div id="current_user_messages">
    <%= render @room.messages %>
  </div>
<% else %>
  <%= turbo_stream_from "messages" %>
  <div id="messages">
    <%= render @room.messages %>
  </div>
<% end %>

# create.trubo_stream
<%= turbo_stream.prepend "current_user_messages" do %>
  # so you can use current user logically when rendering template
  <%= render partial: "message", locals: { message: @message current_user: current_user } %>
<% end %>

# message.rb
after_create_commit { broadcast_prepend_to 'messages' }

# messages_controller.rb
...
respond_to do |format|
  format.turbo_stream
end

# _message.html.erb
<%= turbo_frame_tag dom_id(message do %>
   ....
  <% if current_user %>
    <div><%= link_to 'Edit'...></div>%>
  <% end %>
<% end %>