Why LED works but BC547 is not Working ?

BC547 is completely the wrong transistor for switching a motor - it's rated at 100mA maximum. For switching small motors, you can use BC337 or ZTX851, with a 100 to 220 ohm base resistor. For larger motors, use a logic level N-channel mosfet instead.