user(); $rewards = Reward::where('active',true)->orderBy('points_cost')->get(); $history = RewardRedemption::with('reward')->where('user_id',$user->id)->latest()->take(20)->get(); return view('child.rewards.index', compact('user','rewards','history')); } public function redeem(Request $r, Reward $reward) { $user = auth()->user(); if (!$reward->active) abort(422); if ($user->points < $reward->points_cost) { return back()->with('error','Nicht genug Münzen!'); } $user->decrement('points', $reward->points_cost); RewardRedemption::create([ 'user_id' => $user->id, 'reward_id' => $reward->id, 'status' => 'pending', 'points_spent'=> $reward->points_cost, ]); return back()->with('success','Eingelöst! Warte auf Freigabe.'); } }