each(function ($activity) { $activity->participants()->wherePivot('status', 'hadir')->each(function ($user) use ($activity) { MemberPoint::firstOrCreate( ['user_id' => $user->id, 'source_type' => 'activity', 'source_id' => $activity->id], ['points' => 10, 'reason' => "Hadir di kegiatan: {$activity->title}"] ); }); }); // Poin dari artikel yang sudah published Post::where('status', 'published')->each(function ($post) { MemberPoint::firstOrCreate( ['user_id' => $post->author_id, 'source_type' => 'post', 'source_id' => $post->id], ['points' => 5, 'reason' => "Artikel dipublikasi: {$post->title}"] ); }); } }