Arka planda çalışan bir olay (job, task, command vs) Post modeli oluşturduğunda observer'ı tetikleyecek ama o sırada Auth katmanı olmadığı için user_id her zaman boş kalacak. Şansınıza burada Auth::id()
kullanılmış, null-safe bir yöntem olduğu için null dönecek ama Auth::user()->id
kullanılsaydı hata alacaktı. Bunlara dikkat etmek lazım. Observer sınıfına ekstra parametre gönderilmediği için (Post modeline sonradan eklenebilir ama bu iyi bir yöntem değil) bu gibi durumlarda event/listener kullanmak daha uygun olacaktır.
Ayrıca her ne kadar örnek olsa da üstteki gibi yapılarda $user->posts()->create([...])
şeklinde kayıt oluşturmak daha sağlıklıdır.