widget_name map for the listing $widgets = WidgetForm::where('restaurant_id', $tenantId) ->get() ->mapWithKeys(function($w){ return [$w->id => $w->name]; }) ->toArray(); $apiKeys = ApiKeyBotModel::where('restaurant_id', $tenantId) ->orderBy('date_created', 'DESC') ->get(); $items = []; foreach ($apiKeys as $apiKey) { $items[] = [ 'id' => $apiKey->id, 'uuid' => $apiKey->uuid, 'name' => $apiKey->name, 'platform' => $apiKey->platform, 'widget_id' => intval($apiKey->widget_id), 'widget_name' => isset($widgets[$apiKey->widget_id]) ? $widgets[$apiKey->widget_id] : null, 'api_key' => $apiKey->api_key, 'is_active' => $apiKey->is_active ? true : false, 'last_used_at' => $apiKey->last_used_at, 'date_created' => $apiKey->date_created, ]; } return $items; } }