public function getIncompleteProductLoads($user_id) { //get user and in progress product requests / ideas $user = $this->eloquent->with(['ideas' => function ($query) { $query->where('is_fulfilled', '=', 0); }])->with(['productRequests' => function ($query) { $query->whereNull('product_id'); }])->find($user_id); if (empty($user)) { return []; } $user = $user->toArray(); $product_requests = $user['product_requests']; $ideas = $user['ideas']; //compile inprogress items $inprogress_items = new \Collection(); foreach ($product_requests as $product_request) { $inprogress_items->add(['type' => 'id load', 'human_time_diff' => \Carbon::createFromFormat('Y-m-d H:i:s', $product_request['created_at'])->diffForHumans(), 'created_at' => $product_request['created_at'], 'updated_at' => $product_request['updated_at'], 'id' => $product_request['id'], 'description' => $product_request['vendor'] . ' ' . $product_request['vendor_id'], 'query' => ['vendor' => $product_request['vendor'], 'vendor_id' => $product_request['vendor_id']]]); } foreach ($ideas as $idea) { $inprogress_items->add(['type' => 'idea load', 'human_time_diff' => \Carbon::createFromFormat('Y-m-d H:i:s', $idea['created_at'])->diffForHumans(), 'created_at' => $idea['created_at'], 'updated_at' => $idea['updated_at'], 'id' => $idea['id'], 'description' => $idea['description'], 'query' => ['idea_description' => $idea['description']]]); } $inprogress_items->sortBy('created_at'); return $inprogress_items->toArray(); }