@php use App\Enums\OrderCycleStateTypes; use App\Models\User; use App\Http\Controllers\Order_cycle_statesController; $order_cycle_state_types = OrderCycleStateTypes::asArray(); $order_cycle_states = new Order_cycle_statesController(); $cacle_type_as_string = "get" .ucfirst($cycle->type); $main_checkpoints = $order_cycle_states->getMain_checkpoints(); $optional_checkpoints = $order_cycle_states->getOptional_checkpoints(); $cycle_checkpoints = $order_cycle_states->$cacle_type_as_string(); $states = $cycle->states()->get(); $specific_checkpoints = s_array_merge($main_checkpoints, $cycle_checkpoints) ; foreach ($states as $state) { if ( !empty($optional_checkpoints[ $state->state_type ]) ) { $specific_checkpoints[ $state->state_type ] = $optional_checkpoints[ $state->state_type ]; } } uasort($specific_checkpoints, fn($a, $b) => $a['percent'] <=> $b['percent']); @endphp