This approach: - Creates a reusable function - Handles errors gracefully - Updates both fields in one database call - Doesn't block the download - Works with Turbolinks