Rotating objects around an object that moves using Velocity

I am making a shoot’em up and I want to have objects rotate around my ship like shields. The issue is the ship is moving using velocity, and everything I have found about moving an object around a moving object uses transform.position, which doesn’t get the full job done. When I move the ship, the bolts clump up together.

This is the latest thing I have tried but it did not get the job done:

void Orbit()
{

	Rigidbody shipRigidbody = GameObject.FindWithTag ("Plane").GetComponent<Rigidbody> ();
	rigidbody.velocity = shipRigidbody.velocity;
	Transform Origin = GameObject.FindWithTag("Plane").GetComponent<Transform>();
	transform.position = Origin.position + (transform.position - Origin.position).normalized * orbitDistance;
	transform.RotateAround (Origin.position, Vector3.up, orbitSpeed * Time.deltaTime);
}

Here is a possible solution. It rotates a vector and used the vector to place the object using Rigidbody.MovePosition(). You have to setup the relative initial position ‘v’ and the axis for the rotation.

using UnityEngine;
using System.Collections;

public class Orbit : MonoBehaviour {

	public Vector3 v = Vector3.forward * 1.5f;
	public Vector3 axis = Vector3.up;
	float orbitSpeed = 180.0f;

	private Transform ship;

	void Start () {
		ship = GameObject.FindWithTag ("Plane").transform;
	}
	
	void FixedUpdate () {
		v = Quaternion.AngleAxis (orbitSpeed * Time.fixedDeltaTime, axis) * v;
		rigidbody.MovePosition (ship.position + v);
	}
}