diff --git a/app/Filament/Resources/Activities/RelationManagers/ParticipantsRelationManager.php b/app/Filament/Resources/Activities/RelationManagers/ParticipantsRelationManager.php index ebd48f2..543139d 100644 --- a/app/Filament/Resources/Activities/RelationManagers/ParticipantsRelationManager.php +++ b/app/Filament/Resources/Activities/RelationManagers/ParticipantsRelationManager.php @@ -69,21 +69,19 @@ class ParticipantsRelationManager extends RelationManager EditAction::make() ->after(function (EditAction $action, $record, array $data) { $activity = $this->getOwnerRecord(); - $existing = MemberPoint::where('user_id', $record->id) - ->where('source_type', \App\Models\Activity::class) - ->where('source_id', $activity->id) - ->first(); + $key = [ + 'user_id' => $record->id, + 'source_type' => \App\Models\Activity::class, + 'source_id' => $activity->id, + ]; - if (($data['status'] ?? 'hadir') === 'hadir' && ! $existing) { - MemberPoint::create([ - 'user_id' => $record->id, - 'points' => 10, - 'reason' => "Hadir di kegiatan: {$activity->title}", - 'source_type' => \App\Models\Activity::class, - 'source_id' => $activity->id, + if (($data['status'] ?? 'hadir') === 'hadir') { + MemberPoint::firstOrCreate($key, [ + 'points' => 10, + 'reason' => "Hadir di kegiatan: {$activity->title}", ]); - } elseif (($data['status'] ?? 'hadir') !== 'hadir' && $existing) { - $existing->delete(); + } else { + MemberPoint::where($key)->delete(); } }), DetachAction::make() diff --git a/app/Filament/Resources/Posts/Tables/PostsTable.php b/app/Filament/Resources/Posts/Tables/PostsTable.php index 674c049..ce35399 100644 --- a/app/Filament/Resources/Posts/Tables/PostsTable.php +++ b/app/Filament/Resources/Posts/Tables/PostsTable.php @@ -17,8 +17,8 @@ class PostsTable { public static function configure(Table $table): Table { - $canReview = auth()->user()?->can('Publish:Post'); - $canPublish = auth()->user()?->can('Publish:Post'); + $canReview = auth()->user()?->can('Publish:Post') ?? false; + $canPublish = $canReview; return $table ->columns([