Fine-Tuning Large Language Models with User-Level Differential Privacy