public function store(Request $request) { $user = User::find($request['user']['sub']); $resource = new Resource(); DB::transaction(function () use($request, $resource, $user) { $tags = $request->input('tags'); $tag_collection = collect($tags); $tags_flat = $tag_collection->implode('name', '; '); $tags_pretty = $tag_collection->implode('description', '; '); Log::info($tag_collection); $tag_first = $tag_collection->first(); Log::info($tag_first); $countries = $request->input('countries'); $country_collection = collect($countries); $countries_flat = $country_collection->implode('name', '; '); $countries_pretty = $country_collection->implode('description', '; '); $organization = $request->input('organization_owner'); Log::info($organization); $resource->description = $request->input('description'); $resource->conditions = $request->input('conditions'); $resource->cost = $request->input('cost'); $resource->name = $request->input('name'); $resource->call_id = $request->input('call_id'); if (isset($organization)) { $resource->organization_id = $organization['id']; } if (isset($tag_first)) { $resource->main_type = $tag_first['parent_id']; } $resource->image = $request->input('image'); $resource->tags = $tags_flat; $resource->tags_pretty = $tags_pretty; $resource->countries = $countries_flat; $resource->countries_pretty = $countries_pretty; $resource->user_id = $user->id; $resource->save(); foreach ($tags as $tag) { $rrt = new ResourceResourceType(array('resource_id' => $resource->id, 'resource_type_id' => $tag['id'])); $rrt->save(); } }); return $resource; }